boost::gil::static_transform
Equivalent to std::transform. Pairs the elements semantically
Synopsis
template<
typename Src,
typename Dst,
typename Op>
[[__always_inline__]]
Op
static_transform(
Src& src,
Dst& dst,
Op op);
Description
Example: Write a generic function that adds two pixels into a homogeneous result pixel.
template <typename Result>
struct my_plus {
template <typename T1, typename T2>
Result operator()(T1 f1, T2 f2) const { return f1+f2; }
};
template <typename Pixel1, typename Pixel2, typename Pixel3>
void sum_channels(const Pixel1& p1, const Pixel2& p2, Pixel3& result) {
using result_channel_t = typename channel_type<Pixel3>::type;
static_transform(p1,p2,result,my_plus<result_channel_t>());
}
rgb8_pixel_t p1(1,2,3);
bgr8_pixel_t p2(3,2,1);
rgb8_pixel_t result;
sum_channels(p1,p2,result);
assert(result == rgb8_pixel_t(2,4,6));
{
Created with MrDocs