Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
bit_aligned_pixel_reference

A heterogeneous pixel reference used to represent non-byte-aligned pixels. More...

Collaboration diagram for bit_aligned_pixel_reference:

Classes

struct  boost::gil::bit_aligned_pixel_reference< BitField, ChannelBitSizes, Layout, IsMutable >
 Heterogeneous pixel reference corresponding to non-byte-aligned bit range. More...
 

Detailed Description

A heterogeneous pixel reference used to represent non-byte-aligned pixels.

Models PixelConcept

Example:

unsigned char data=0;
// A mutable reference to a 6-bit BGR pixel in "123" format (1 bit for red, 2 bits for green, 3 bits for blue)
typedef const bit_aligned_pixel_reference<unsigned char, mpl::vector3_c<int,1,2,3>, rgb_layout_t, true> rgb123_ref_t;
// create the pixel reference at bit offset 2
// (i.e. red = [2], green = [3,4], blue = [5,6,7] bits)
rgb123_ref_t ref(&data, 2);
get_color(ref, red_t()) = 1;
assert(data == 0x04);
get_color(ref, green_t()) = 3;
assert(data == 0x1C);
get_color(ref, blue_t()) = 7;
assert(data == 0xFC);