1 //
2 // Copyright 2013 Christian Henning
3 //
4 // Distributed under the Boost Software License, Version 1.0
5 // See accompanying file LICENSE_1_0.txt or copy at
6 // http://www.boost.org/LICENSE_1_0.txt
7 //
8 #include <boost/gil.hpp>
9 #include <boost/gil/extension/io/tiff.hpp>
10 
11 #include <boost/core/lightweight_test.hpp>
12 
13 #include <cstdint>
14 #include <string>
15 
16 #include "tiff_tiled_read_macros.hpp"
17 
18 namespace gil = boost::gil;
19 
20 #ifdef BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES
21 
22 BOOST_PP_REPEAT_FROM_TO(21, 32, BOOST_GIL_TEST_GENERATE_TILE_STRIP_COMPARISON_BIT_ALIGNED_MINISBLACK, minisblack )
23 
test_read_tile_and_compare_with_minisblack_strip_32()24 void test_read_tile_and_compare_with_minisblack_strip_32()
25 {
26     std::string filename_strip(tiff_in_GM + "tiger-minisblack-strip-32.tif");
27     std::string filename_tile(tiff_in_GM + "tiger-minisblack-tile-32.tif");
28 
29     using gray32_pixel_t = gil::pixel<unsigned int, gil::gray_layout_t>;
30     gil::image<gray32_pixel_t, false> img_strip, img_tile;
31 
32     gil::read_image(filename_strip, img_strip, gil::tiff_tag());
33     gil::read_image(filename_tile, img_tile, gil::tiff_tag());
34 
35     BOOST_TEST_EQ(gil::equal_pixels(gil::const_view(img_strip), gil::const_view(img_tile)), true);
36 }
37 
test_read_tile_and_compare_with_minisblack_strip_64()38 void test_read_tile_and_compare_with_minisblack_strip_64()
39 {
40     std::string filename_strip(tiff_in_GM + "tiger-minisblack-strip-64.tif");
41     std::string filename_tile(tiff_in_GM + "tiger-minisblack-tile-64.tif");
42 
43     using gray64_pixel_t = gil::pixel<std::uint64_t, gil::gray_layout_t>;
44     gil::image<gray64_pixel_t, false> img_strip, img_tile;
45 
46     gil::read_image(filename_strip, img_strip, gil::tiff_tag());
47     gil::read_image(filename_tile, img_tile, gil::tiff_tag());
48 
49     BOOST_TEST_EQ(gil::equal_pixels(gil::const_view(img_strip), gil::const_view(img_tile)), true);
50 }
51 
main()52 int main()
53 {
54     test_read_tile_and_compare_with_minisblack_strip_32();
55     test_read_tile_and_compare_with_minisblack_strip_64();
56 
57     // TODO: Make sure generated test cases are executed. See tiff_subimage_test.cpp. ~mloskot
58 
59     return boost::report_errors();
60 }
61 
62 #else
main()63 int main() {}
64 #endif // BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES
65