|
Boost : |
Subject: [boost] [gil] Who has a big-endian machine?
From: Christian Henning (chhenning_at_[hidden])
Date: 2010-09-01 14:05:47
Hi there, could someone with a big-endian machine run the following
code with the latest gil code from the trunk?
#include <cassert>
#include <vector>
#include <boost/gil/gil_all.hpp>
using namespace boost;
using namespace gil;
int main()
{
typedef bit_aligned_image1_type< 3, gray_layout_t >::type gray3_image_t;
typedef gray3_image_t image_t;
typedef image_t::view_t view_t;
typedef view_t::reference ref_t;
typedef bit_aligned_pixel_iterator< ref_t > iterator_t;
std::vector< unsigned char > buf( 4 );
// bit pattern is: 1011 0110 0110 1101 1101 1011
// each byte is read right to left
buf[0] = 182;
buf[1] = 109;
buf[2] = 219;
iterator_t it( &buf[0], 0 );
ref_t p1 = *it; it++;
ref_t p2 = *it; it++;
ref_t p3 = *it; it++;
ref_t p4 = *it; it++;
ref_t p5 = *it; it++;
ref_t p6 = *it; it++;
ref_t p7 = *it; it++;
ref_t p8 = *it; it++;
unsigned char v1 = get_color( p1, gray_color_t() );
unsigned char v2 = get_color( p2, gray_color_t() );
unsigned char v3 = get_color( p3, gray_color_t() );
unsigned char v4 = get_color( p4, gray_color_t() );
unsigned char v5 = get_color( p5, gray_color_t() );
unsigned char v6 = get_color( p6, gray_color_t() );
unsigned char v7 = get_color( p7, gray_color_t() );
unsigned char v8 = get_color( p8, gray_color_t() );
// all values should be 110b ( 6 );
assert( v1 == 6 );
assert( v2 == 6 );
assert( v3 == 6 );
assert( v4 == 6 );
assert( v5 == 6 );
assert( v6 == 6 );
assert( v7 == 6 );
assert( v8 == 6 );
return 0;
}
Thanks ahead,
Christian
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk