Ticket #1377: test_read_tiff_rgba.cpp

File test_read_tiff_rgba.cpp, 1.8 KB (added by john.femiani@…, 14 years ago)

A testcase for reading rgba

Line 
1
2/******************************************************************************
3 * __LICENCE_BEGIN__
4 *
5 * __LICENCE_END__
6 *****************************************************************************/
7
8///@file
9///@brief Test that RGBA images are detected by the TIFF reader.
10///
11///@author john.femiani@asu.edu
12///
13///
14
15#include <boost/test/unit_test.hpp>
16
17#include <boost/gil/gil_all.hpp>
18#include <boost/gil/extension/io/tiff_io.hpp>
19
20namespace gil = boost::gil;
21
22BOOST_AUTO_TEST_CASE(test_tiff_read_rgba8_image){
23 gil::rgba8_image_t rgb;
24 ::boost::gil::tiff_read_image("images/rgba.tif", rgb);
25
26 BOOST_CHECK_MESSAGE(rgb.width() == 86,
27 "rgb.width() == 86 failed: Was " << rgb.width());
28 BOOST_CHECK_MESSAGE(rgb.height() == 64,
29 "rgb.height() == 64 failed: Was " << rgb.width());
30
31 for (int y = 0; y < rgb.height(); ++y){
32 for (int x = 0; x < rgb.width(); ++x){
33 gil::rgba8_pixel_t pix = view(rgb)(x,y);
34 BOOST_REQUIRE_MESSAGE(pix == gil::rgba8_pixel_t(128,128,128,255),
35 "pix!=128,128,128,255 found pix=" <<
36 (int)pix[0] << "," <<
37 (int)pix[1] << "," <<
38 (int)pix[2] << "," <<
39 (int)pix[3] <<
40 " at x="<<x<<", y=" << y << ".");
41 }
42 }
43
44}
45
46BOOST_AUTO_TEST_CASE(test_tiff_read_rgb8_image_fails_on_rgba){
47
48 try {
49 gil::rgb8_image_t rgb;
50 ::boost::gil::tiff_read_image("images/rgba.tif", rgb);
51 BOOST_FAIL("Reading an rgb image from an rgba tif should fail.");
52 } catch (std::ios_base::failure& err ){
53 //Good, we should have an io error!
54 }
55}
56