boost::gil::bit_aligned_pixel_reference

Heterogeneous pixel reference corresponding to non‐byte‐aligned bit range. Models ColorBaseConcept, PixelConcept, PixelBasedConcept

Synopsis

template<
    typename B,
    typename C,
    typename L,
    bool M>
struct bit_aligned_pixel_reference;

Description

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)
using rgb123_ref_t = bit_aligned_pixel_reference<unsigned char, mp11::mp_list_c<int,1,2,3>, rgb_layout_t, true> const;

// 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);

Member Functions

Name

Description

bit_aligned_pixel_reference [constructor]

Constructors

operator=

Assignment operators

bit_range

operator‐>

Member access operator

operator==

Equality operator

operator!=

Inequality operator

Static Data Members

Friends

Name

Description

boost::gil::bit_aligned_pixel_reference

Heterogeneous pixel reference corresponding to non‐byte‐aligned bit range. Models ColorBaseConcept, PixelConcept, PixelBasedConcept

Template Parameters

Name

Description

ChannelBitSizes

Boost.MP11‐compatible list of integral types defining the number of bits for each channel. For example, for 565RGB, mp_list_c<int,5,6,5>

Created with MrDocs