/// Split gray to RGBA components static void split(const pixel_t& p, channel_t& r, channel_t& g, channel_t& b, channel_t& a) throw() { r = get_color(p,gray_color_t()); g = get_color(p,gray_color_t()); b = get_color(p,gray_color_t()); a = ~0; }
void operator()(const P1& src, P2& dst) const { get_color(dst,red_t()) = channel_convert<typename color_element_type<P2, red_t>::type>( channel_multiply(get_color(src,gray_color_t()),get_color(src,alpha_t()) ) ); get_color(dst,green_t()) = channel_convert<typename color_element_type<P2, green_t>::type>( channel_multiply(get_color(src,gray_color_t()),get_color(src,alpha_t()) ) ); get_color(dst,blue_t()) = channel_convert<typename color_element_type<P2, blue_t>::type>( channel_multiply(get_color(src,gray_color_t()),get_color(src,alpha_t()) ) ); }
void operator()(const P1& src, P2& dst) const { get_color(dst,red_t()) = channel_convert<typename color_element_type<P2, red_t >::type>(get_color(src,gray_color_t())); get_color(dst,green_t())= channel_convert<typename color_element_type<P2, green_t>::type>(get_color(src,gray_color_t())); get_color(dst,blue_t()) = channel_convert<typename color_element_type<P2, blue_t >::type>(get_color(src,gray_color_t())); typedef typename channel_type< P2 >::type channel_t; get_color(dst,alpha_t()) = channel_traits< channel_t >::max_value(); }