mirror of
https://github.com/boostorg/gil.git
synced 2026-02-18 14:12:10 +00:00
Adopted test code and documentation to scanline_read_iterator interface changes.
[SVN r82990]
This commit is contained in:
committed by
Stefan Seefeld
parent
e8da58de6f
commit
9e8c13832c
@@ -266,37 +266,32 @@ through the image. The following code sample shows the usage:
|
||||
, FormatTag
|
||||
> reader_t;
|
||||
|
||||
// create the reader object and read the image's header information
|
||||
reader_t reader = make_scanline_reader( file_name, FormatTag() );
|
||||
|
||||
// create an image
|
||||
Image dst( reader._info._width, reader._info._height );
|
||||
vector< byte_t > buffer( reader._scanline_length );
|
||||
|
||||
// create a scanline
|
||||
byte_t* buffer = new byte_t[ reader._scanline_length ];
|
||||
typedef scanline_read_iterator< reader_t > iterator_t;
|
||||
|
||||
// setup two iterators
|
||||
auto it = scanline_read_iterator< reader_t >( reader, buffer );
|
||||
auto end = scanline_read_iterator< reader_t >();
|
||||
iterator_t it = iterator_t( reader, &buffer.front() );
|
||||
iterator_t end = iterator_t();
|
||||
|
||||
int row = 0;
|
||||
|
||||
// loop through the image
|
||||
while( it != end )
|
||||
for( int row = 0; it != end; ++it, ++row )
|
||||
{
|
||||
// read the next scanline
|
||||
*it;
|
||||
|
||||
// copy scanline into image
|
||||
copy_pixels( interleaved_view( reader._info._width, 1, ( typename Image::view_t::x_iterator ) buffer, reader._scanline_length )
|
||||
, subimage_view( view( dst ), 0, row, reader._info._width, 1 )
|
||||
copy_pixels( interleaved_view( reader._info._width
|
||||
, 1
|
||||
, ( typename Image::view_t::x_iterator ) *it
|
||||
, reader._scanline_length
|
||||
)
|
||||
, subimage_view( view( dst )
|
||||
, 0
|
||||
, row
|
||||
, reader._info._width
|
||||
, 1
|
||||
)
|
||||
);
|
||||
|
||||
++row;
|
||||
}
|
||||
|
||||
delete[] buffer;
|
||||
|
||||
There are many ways to travese an image but for as of now only by scanline is supported.
|
||||
|
||||
|
||||
|
||||
@@ -22,25 +22,29 @@ void test_scanline_reader( const char* file_name )
|
||||
reader_t reader = make_scanline_reader( file_name, FormatTag() );
|
||||
|
||||
Image dst( reader._info._width, reader._info._height );
|
||||
byte_t* buffer = new byte_t[ reader._scanline_length ];
|
||||
vector< byte_t > buffer( reader._scanline_length );
|
||||
|
||||
scanline_read_iterator< reader_t > it = scanline_read_iterator< reader_t >( reader, buffer );
|
||||
scanline_read_iterator< reader_t > end = scanline_read_iterator< reader_t >();
|
||||
typedef scanline_read_iterator< reader_t > iterator_t;
|
||||
|
||||
int row = 0;
|
||||
while( it != end )
|
||||
iterator_t it = iterator_t( reader, &buffer.front() );
|
||||
iterator_t end = iterator_t();
|
||||
|
||||
for( int row = 0; it != end; ++it, ++row )
|
||||
{
|
||||
*it;
|
||||
|
||||
copy_pixels( interleaved_view( reader._info._width, 1, ( typename Image::view_t::x_iterator ) buffer, reader._scanline_length )
|
||||
, subimage_view( view( dst ), 0, row, reader._info._width, 1 )
|
||||
copy_pixels( interleaved_view( reader._info._width
|
||||
, 1
|
||||
, ( typename Image::view_t::x_iterator ) *it
|
||||
, reader._scanline_length
|
||||
)
|
||||
, subimage_view( view( dst )
|
||||
, 0
|
||||
, row
|
||||
, reader._info._width
|
||||
, 1
|
||||
)
|
||||
);
|
||||
|
||||
++row;
|
||||
}
|
||||
|
||||
delete[] buffer;
|
||||
|
||||
//compare
|
||||
Image img;
|
||||
read_image( file_name, img, FormatTag() );
|
||||
|
||||
Reference in New Issue
Block a user