|
Blender V4.3
|
#include <type_traits>#include "BLI_math_color_blend.h"#include "BLI_math_interp.hh"#include "BLI_math_matrix.hh"#include "BLI_math_vector.h"#include "BLI_rect.h"#include "BLI_task.hh"#include "IMB_imbuf.hh"#include "IMB_interp.hh"Go to the source code of this file.
Classes | |
| struct | blender::imbuf::transform::TransformContext |
Namespaces | |
| namespace | blender |
| namespace | blender::imbuf |
| namespace | blender::imbuf::transform |
| void IMB_transform | ( | const ImBuf * | src, |
| ImBuf * | dst, | ||
| eIMBTransformMode | mode, | ||
| eIMBInterpolationFilterMode | filter, | ||
| const float | transform_matrix[4][4], | ||
| const rctf * | src_crop ) |
Transform source image buffer onto destination image buffer using a transform matrix.
| src | Image buffer to read from. |
| dst | Image buffer to write to. rect or rect_float must already be initialized.
|
| mode | Cropping/Wrap repeat effect to apply during transformation. |
| filter | Interpolation to use during sampling. |
| transform_matrix | Transformation matrix to use. The given matrix should transform between dst pixel space to src pixel space. One unit is one pixel. |
| src_crop | Cropping region how to crop the source buffer. Should only be passed when mode is set to IMB_TRANSFORM_MODE_CROP_SRC. For any other mode this should be empty. |
During transformation no data/color conversion will happens. When transforming between float images the number of channels of the source buffer may be between 1 and 4. When source buffer has one channel the data will be read as a gray scale value.
Definition at line 466 of file imbuf/intern/transform.cc.
References BLI_assert_msg, ImBuf::channels, blender::imbuf::transform::TransformContext::dst, blender::imbuf::transform::TransformContext::dst_region_y_range, IMB_FILTER_BILINEAR, IMB_FILTER_BOX, IMB_FILTER_CUBIC_BSPLINE, IMB_FILTER_CUBIC_MITCHELL, IMB_TRANSFORM_MODE_CROP_SRC, blender::imbuf::transform::TransformContext::init(), blender::imbuf::transform::TransformContext::mode, blender::threading::parallel_for(), blender::imbuf::transform::TransformContext::src, blender::imbuf::transform::TransformContext::src_crop, and blender::imbuf::transform::transform_scanlines_filter().
Referenced by imb_scale_via_transform(), sequencer_preprocess_transform_crop(), blender::imbuf::tests::TEST(), blender::imbuf::tests::transform_2x_smaller(), and blender::imbuf::tests::transform_fractional_larger().