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 <string>
14 
15 #include "paths.hpp"
16 #include "scanline_read_test.hpp"
17 
18 namespace gil = boost::gil;
19 
20 #ifdef BOOST_GIL_IO_USE_TIFF_LIBTIFF_TEST_SUITE_IMAGES
21 template <typename Image>
test_tiff_scanline_reader(std::string filename)22 void test_tiff_scanline_reader(std::string filename)
23 {
24     test_scanline_reader<Image, gil::tiff_tag>(filename.c_str());
25 }
26 
27 // 73x43 2-bit minisblack gray image
test_two_bit_minisblack_gray_image()28 void test_two_bit_minisblack_gray_image()
29 {
30     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-02.tif");
31 
32     using image_t = gil::bit_aligned_image1_type<2, gil::gray_layout_t>::type;
33     image_t img;
34     gil::read_image(filename, img, gil::tiff_tag());
35 
36 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
37     gil::write_view(tiff_out + "test4.tif", gil::view(img), gil::tiff_tag());
38 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
39 }
40 
41 // flower-minisblack-04.tif    73x43 4-bit minisblack gray image
test_four_bit_minisblack_gray_image()42 void test_four_bit_minisblack_gray_image()
43 {
44     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-04.tif");
45 
46     using image_t = gil::bit_aligned_image1_type<4, gil::gray_layout_t>::type;
47     image_t img;
48     gil::read_image(filename, img, gil::tiff_tag());
49 
50 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
51     gil::write_view(tiff_out + "test5.tif", gil::view(img), gil::tiff_tag());
52 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
53 }
54 
55 // flower-minisblack-06.tif 73x43 6-bit minisblack gray image
test_six_bit_minisblack_gray_image()56 void test_six_bit_minisblack_gray_image()
57 {
58     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-06.tif");
59 
60     using image_t = gil::bit_aligned_image1_type<6, gil::gray_layout_t>::type;
61     image_t img;
62     gil::read_image(filename, img, gil::tiff_tag());
63 
64 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
65     gil::write_view(tiff_out + "test6.tif", gil::view(img), gil::tiff_tag());
66 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
67 }
68 
69 // flower-minisblack-08.tif    73x43 8-bit minisblack gray image
test_eight_bit_minisblack_gray_image()70 void test_eight_bit_minisblack_gray_image()
71 {
72     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-08.tif");
73 
74     using image_t = gray8_image_t;
75     image_t img;
76     gil::read_image(filename, img, gil::tiff_tag());
77 
78 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
79     gil::write_view(tiff_out + "test7.tif", gil::view(img), gil::tiff_tag());
80 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
81 }
82 
83 // flower-minisblack-10.tif    73x43 10-bit minisblack gray image
test_ten_bit_minisblack_gray_image()84 void test_ten_bit_minisblack_gray_image()
85 {
86     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-10.tif");
87 
88     using image_t = gil::bit_aligned_image1_type<10, gil::gray_layout_t>::type;
89     image_t img;
90     gil::read_image(filename, img, gil::tiff_tag());
91 
92 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
93     gil::write_view(tiff_out + "test8.tif", gil::view(img), gil::tiff_tag());
94 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
95 }
96 
97 // flower-minisblack-12.tif    73x43 12-bit minisblack gray image
test_twelve_bit_minisblack_gray_image()98 void test_twelve_bit_minisblack_gray_image()
99 {
100     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-12.tif");
101 
102         using image_t = gil::bit_aligned_image1_type<12, gil::gray_layout_t>::type;
103         image_t img;
104         gil::read_image(filename, img, gil::tiff_tag());
105 
106 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
107         gil::write_view(tiff_out + "test9.tif", gil::view(img), gil::tiff_tag());
108 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
109 }
110 
111 // flower-minisblack-14.tif    73x43 14-bit minisblack gray image
test_fourteen_bit_minisblack_gray_image()112 void test_fourteen_bit_minisblack_gray_image()
113 {
114     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-14.tif");
115 
116     using image_t = gil::bit_aligned_image1_type<14, gil::gray_layout_t>::type;
117     image_t img;
118     gil::read_image(filename, img, gil::tiff_tag());
119 
120 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
121     gil::write_view(tiff_out + "test10.tif", gil::view(img), gil::tiff_tag());
122 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
123 }
124 
125 // flower-minisblack-16.tif    73x43 16-bit minisblack gray image
test_sixteen_bit_minisblack_gray_image()126 void test_sixteen_bit_minisblack_gray_image()
127 {
128     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-16.tif");
129 
130     using image_t = gray16_image_t;
131     image_t img;
132     gil::read_image(filename, img, gil::tiff_tag());
133 
134 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
135     gil::write_view(tiff_out + "test11.tif", gil::view(img), gil::tiff_tag());
136 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
137 }
138 
139 // flower-minisblack-24.tif    73x43 24-bit minisblack gray image
test_twentyfour_bit_minisblack_gray_image()140 void test_twentyfour_bit_minisblack_gray_image()
141 {
142     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-24.tif");
143 
144     using image_t = gil::bit_aligned_image1_type<24, gil::gray_layout_t>::type;
145     image_t img;
146     gil::read_image(filename, img, gil::tiff_tag());
147 
148 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
149     gil::write_view(tiff_out + "test12.tif", gil::view(img), gil::tiff_tag());
150 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
151 }
152 
153 // flower-minisblack-32.tif    73x43 32-bit minisblack gray image
test_thirtytwo_bit_minisblack_gray_image()154 void test_thirtytwo_bit_minisblack_gray_image()
155 {
156     std::string filename(tiff_in + "libtiffpic/depth/flower-minisblack-32.tif");
157 
158     using image_t = gray32_image_t;
159     image_t img;
160     gil::read_image(filename, img, gil::tiff_tag());
161 
162 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
163     gil::write_view(tiff_out + "test13.tif", gil::view(img), gil::tiff_tag());
164 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
165 }
166 
167 // flower-palette-02.tif 73x43 4-entry colormapped image
test_four_entry_colormapped_image()168 void test_four_entry_colormapped_image()
169 {
170     std::string filename(tiff_in + "libtiffpic/depth/flower-palette-02.tif");
171 
172     using image_t = gil::rgb16_image_t;
173     image_t img;
174     gil::read_image(filename, img, gil::tiff_tag());
175 
176 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
177     gil::write_view(tiff_out + "test14.tif", gil::view(img), gil::tiff_tag());
178 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
179 }
180 
181 // flower-palette-04.tif    73x43 16-entry colormapped image
test_sixteen_entry_colormapped_image()182 void test_sixteen_entry_colormapped_image()
183 {
184     std::string filename(tiff_in + "libtiffpic/depth/flower-palette-04.tif");
185 
186     using image_t = gil::rgb16_image_t;
187     image_t img;
188     gil::read_image(filename, img, gil::tiff_tag());
189 
190 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
191     gil::write_view(tiff_out + "test15.tif", gil::view(img), gil::tiff_tag());
192 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
193 }
194 
195 // flower-palette-08.tif    73x43 256-entry colormapped image
test_twohundred_twenty_five_entry_colormapped_image()196 void test_twohundred_twenty_five_entry_colormapped_image()
197 {
198     std::string filename(tiff_in + "libtiffpic/depth/flower-palette-08.tif");
199 
200     using image_t = gil::rgb16_image_t;
201     image_t img;
202     gil::read_image(filename, img, gil::tiff_tag());
203 
204 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
205     gil::write_view(tiff_out + "test16.tif", gil::view(img), gil::tiff_tag());
206 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
207 }
208 
209 // flower-palette-16.tif    73x43 65536-entry colormapped image
test_sixtyfive_thousand_entry_colormapped_image()210 void test_sixtyfive_thousand_entry_colormapped_image()
211 {
212     std::string filename(tiff_in + "libtiffpic/depth/flower-palette-16.tif");
213 
214     using image_t = gil::rgb16_image_t;
215     image_t img;
216     gil::read_image(filename, img, gil::tiff_tag());
217 
218 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
219     gil::write_view(tiff_out + "test17.tif", gil::view(img), gil::tiff_tag());
220 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
221 }
222 
223 // flower-rgb-contig-02.tif    73x43 2-bit contiguous RGB image
test_two_bit_contiguous_rgb_image()224 void test_two_bit_contiguous_rgb_image()
225 {
226     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-02.tif");
227 
228     using image_t = gil::bit_aligned_image3_type<2, 2, 2, gil::rgb_layout_t>::type;
229     image_t img;
230     gil::read_image(filename, img, gil::tiff_tag());
231 
232 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
233     gil::write_view(tiff_out + "test18.tif", gil::view(img), gil::tiff_tag());
234 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
235 }
236 
237 // flower-rgb-contig-04.tif    73x43 4-bit contiguous RGB image
test_four_bit_contiguous_rgb_image()238 void test_four_bit_contiguous_rgb_image()
239 {
240     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-04.tif");
241 
242     using image_t = gil::bit_aligned_image3_type<4, 4, 4, gil::rgb_layout_t>::type;
243     image_t img;
244     gil::read_image(filename, img, gil::tiff_tag());
245 
246 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
247     gil::write_view(tiff_out + "test19.tif", gil::view(img), gil::tiff_tag());
248 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
249 }
250 
251 // flower-rgb-contig-08.tif    73x43 8-bit contiguous RGB image
test_eight_bit_contiguous_rgb_image()252 void test_eight_bit_contiguous_rgb_image()
253 {
254     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-08.tif");
255 
256     using image_t = gil::rgb8_image_t;
257     image_t img;
258     gil::read_image(filename, img, gil::tiff_tag());
259 
260 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
261     gil::write_view(tiff_out + "test20.tif", gil::view(img), gil::tiff_tag());
262 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
263 }
264 
265 // flower-rgb-contig-10.tif    73x43 10-bit contiguous RGB image
test_ten_bit_contiguous_rgb_image()266 void test_ten_bit_contiguous_rgb_image()
267 {
268     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-10.tif");
269 
270     using image_t = gil::bit_aligned_image3_type<10, 10, 10, gil::rgb_layout_t>::type;
271     image_t img;
272     gil::read_image(filename, img, gil::tiff_tag());
273 
274 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
275     gil::write_view(tiff_out + "test21.tif", gil::view(img), gil::tiff_tag());
276 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
277 }
278 
279 // flower-rgb-contig-12.tif    73x43 12-bit contiguous RGB image
test_twelve_bit_contiguous_rgb_image()280 void test_twelve_bit_contiguous_rgb_image()
281 {
282     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-12.tif");
283 
284     using image_t = gil::bit_aligned_image3_type<12, 12, 12, gil::rgb_layout_t>::type;
285     image_t img;
286     gil::read_image(filename, img, gil::tiff_tag());
287 
288 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
289     gil::write_view(tiff_out + "test22.tif", gil::view(img), gil::tiff_tag());
290 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
291 }
292 
293 // flower-rgb-contig-14.tif    73x43 14-bit contiguous RGB image
test_fourteen_bit_contiguous_rgb_image()294 void test_fourteen_bit_contiguous_rgb_image()
295 {
296     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-14.tif");
297 
298     using image_t = gil::bit_aligned_image3_type<14, 14, 14, gil::rgb_layout_t>::type;
299     image_t img;
300     gil::read_image(filename, img, gil::tiff_tag());
301 
302 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
303     gil::write_view(tiff_out + "test23.tif", gil::view(img), gil::tiff_tag());
304 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
305 }
306 
307 // flower-rgb-contig-16.tif    73x43 16-bit contiguous RGB image
test_sixteen_bit_contiguous_rgb_image()308 void test_sixteen_bit_contiguous_rgb_image()
309 {
310     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-16.tif");
311 
312     using image_t = gil::rgb16_image_t;
313     image_t img;
314     gil::read_image(filename, img, gil::tiff_tag());
315 
316 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
317     gil::write_view(tiff_out + "test24.tif", gil::view(img), gil::tiff_tag());
318 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
319 }
320 
321 // flower-rgb-contig-24.tif    73x43 24-bit contiguous RGB image
test_twenty_four_bit_contiguous_rgb_image()322 void test_twenty_four_bit_contiguous_rgb_image()
323 {
324     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-24.tif");
325 
326     using image_t = gil::bit_aligned_image3_type<24, 24, 24, gil::rgb_layout_t>::type;
327     image_t img;
328     gil::read_image(filename, img, gil::tiff_tag());
329 
330 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
331     gil::write_view(tiff_out + "test25.tif", gil::view(img), gil::tiff_tag());
332 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
333 }
334 
335 // flower-rgb-contig-32.tif    73x43 32-bit contiguous RGB image
test_thirty_two_bit_contiguous_rgb_image()336 void test_thirty_two_bit_contiguous_rgb_image()
337 {
338     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-contig-32.tif");
339 
340     using image_t = gil::rgb32_image_t;
341     image_t img;
342     gil::read_image(filename, img, gil::tiff_tag());
343 
344 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
345     gil::write_view(tiff_out + "test26.tif", gil::view(img), gil::tiff_tag());
346 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
347 }
348 
349 // flower-rgb-planar-02.tif    73x43 2-bit seperated RGB image
test_two_bit_seperated_rgb_image()350 void test_two_bit_seperated_rgb_image()
351 {
352     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-02.tif");
353 
354     using image_t = gil::bit_aligned_image3_type<2, 2, 2, gil::rgb_layout_t>::type;
355     image_t img;
356     gil::read_image(filename, img, gil::tiff_tag());
357 
358 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
359     gil::write_view(tiff_out + "test27.tif", gil::view(img), gil::tiff_tag());
360 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
361 }
362 
363 // flower-rgb-planar-04.tif    73x43 4-bit seperated RGB image
test_four_bit_seperated_rgb_image()364 void test_four_bit_seperated_rgb_image()
365 {
366     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-04.tif");
367 
368     using image_t = gil::bit_aligned_image3_type<4, 4, 4, gil::rgb_layout_t>::type;
369     image_t img;
370     gil::read_image(filename, img, gil::tiff_tag());
371 
372 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
373     gil::write_view(tiff_out + "test28.tif", gil::view(img), gil::tiff_tag());
374 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
375 }
376 
377 // flower-rgb-planar-08.tif    73x43 8-bit seperated RGB image
test_eight_bit_seperated_rgb_image()378 void test_eight_bit_seperated_rgb_image()
379 {
380     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-08.tif");
381 
382     using image_t = gil::rgb8_planar_image_t;
383     image_t img;
384     gil::read_image(filename, img, gil::tiff_tag());
385 
386 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
387     gil::write_view(tiff_out + "test29.tif", gil::view(img), gil::tiff_tag());
388 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
389 }
390 
391 // flower-rgb-planar-10.tif    73x43 10-bit seperated RGB image
test_ten_bit_seperated_rgb_image()392 void test_ten_bit_seperated_rgb_image()
393 {
394     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-10.tif");
395 
396     using image_t = gil::bit_aligned_image3_type<10, 10, 10, gil::rgb_layout_t>::type;
397     image_t img;
398     gil::read_image(filename, img, gil::tiff_tag());
399 
400 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
401     gil::write_view(tiff_out + "test30.tif", gil::view(img), gil::tiff_tag());
402 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
403 }
404 
405 // flower-rgb-planar-12.tif    73x43 12-bit seperated RGB image
test_twelve_bit_seperated_rgb_image()406 void test_twelve_bit_seperated_rgb_image()
407 {
408     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-12.tif");
409 
410     using image_t = gil::bit_aligned_image3_type<12, 12, 12, gil::rgb_layout_t>::type;
411     image_t img;
412     gil::read_image(filename, img, gil::tiff_tag());
413 
414 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
415     gil::write_view(tiff_out + "test31.tif", gil::view(img), gil::tiff_tag());
416 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
417 }
418 
419 // flower-rgb-planar-14.tif    73x43 14-bit seperated RGB image
test_fourteen_bit_seperated_rgb_image()420 void test_fourteen_bit_seperated_rgb_image()
421 {
422     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-14.tif");
423 
424     using image_t = gil::bit_aligned_image3_type<14, 14, 14, gil::rgb_layout_t>::type;
425     image_t img;
426     gil::read_image(filename, img, gil::tiff_tag());
427 
428 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
429     gil::write_view(tiff_out + "test32.tif", gil::view(img), gil::tiff_tag());
430 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
431 }
432 
433 // flower-rgb-planar-16.tif    73x43 16-bit seperated RGB image
test_sixteen_bit_seperated_rgb_image()434 void test_sixteen_bit_seperated_rgb_image()
435 {
436     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-16.tif");
437 
438     using image_t = gil::rgb16_planar_image_t;
439     image_t img;
440     gil::read_image(filename, img, gil::tiff_tag());
441 
442 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
443     gil::write_view(tiff_out + "test33.tif", gil::view(img), gil::tiff_tag());
444 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
445 }
446 
447 // flower-rgb-planar-24.tif    73x43 24-bit seperated RGB image
test_twenty_four_bit_seperated_rgb_image()448 void test_twenty_four_bit_seperated_rgb_image()
449 {
450     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-24.tif");
451 
452     using image_t = gil::bit_aligned_image3_type<24, 24, 24, gil::rgb_layout_t>::type;
453     image_t img;
454     gil::read_image(filename, img, gil::tiff_tag());
455 
456 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
457     gil::write_view(tiff_out + "test34.tif", gil::view(img), gil::tiff_tag());
458 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
459 }
460 
461 // flower-rgb-planar-32.tif    73x43 32-bit seperated RGB image
test_thirty_two_bit_seperated_rgb_image()462 void test_thirty_two_bit_seperated_rgb_image()
463 {
464     std::string filename(tiff_in + "libtiffpic/depth/flower-rgb-planar-32.tif");
465 
466     using image_t = gil::rgb32_planar_image_t;
467     image_t img;
468     gil::read_image(filename, img, gil::tiff_tag());
469 
470 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
471     gil::write_view(tiff_out + "test35.tif", gil::view(img), gil::tiff_tag());
472 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
473 }
474 
475 // flower-separated-contig-08.tif    73x43 8-bit contiguous CMYK image
test_eight_bit_contiguous_cmyk_image()476 void test_eight_bit_contiguous_cmyk_image()
477 {
478     std::string filename(tiff_in + "libtiffpic/depth/flower-separated-contig-08.tif");
479 
480     using image_t = gil::cmyk8_image_t;
481     image_t img;
482     gil::read_image(filename, img, gil::tiff_tag());
483 
484 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
485     gil::write_view(tiff_out + "test36.tif", gil::view(img), gil::tiff_tag());
486 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
487 }
488 
489 // flower-separated-contig-16.tif    73x43 16-bit contiguous CMYK image
test_sixteen_bit_contiguous_cmyk_image()490 void test_sixteen_bit_contiguous_cmyk_image()
491 {
492     std::string filename(tiff_in + "libtiffpic/depth/flower-separated-contig-16.tif");
493 
494     using image_t = gil::cmyk16_image_t;
495     image_t img;
496     gil::read_image(filename, img, gil::tiff_tag());
497 
498 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
499     gil::write_view(tiff_out + "test37.tif", gil::view(img), gil::tiff_tag());
500 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
501 }
502 
503 // flower-separated-planar-08.tif    73x43 8-bit separated CMYK image
test_eight_bit_separated_cmyk_image()504 void test_eight_bit_separated_cmyk_image()
505 {
506     std::string filename(tiff_in + "libtiffpic/depth/flower-separated-planar-08.tif");
507 
508     using image_t = gil::cmyk8_planar_image_t;
509     image_t img;
510     gil::read_image(filename, img, gil::tiff_tag());
511 
512 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
513     gil::write_view(tiff_out + "test38.tif", gil::view(img), gil::tiff_tag());
514 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
515 }
516 
517 // flower-separated-planar-16.tif    73x43 16-bit separated CMYK image
test_sixteen_bit_separated_cmyk_image()518 void test_sixteen_bit_separated_cmyk_image()
519 {
520     std::string filename(tiff_in + "libtiffpic/depth/flower-separated-planar-16.tif");
521 
522     using image_t = gil::cmyk16_planar_image_t;
523     image_t img;
524     gil::read_image(filename, img, gil::tiff_tag());
525 
526 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
527     gil::write_view(tiff_out + "test39.tif", gil::view(img), gil::tiff_tag());
528 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
529 }
530 #endif  // BOOST_GIL_IO_USE_TIFF_LIBTIFF_TEST_SUITE_IMAGES
531 
532 #ifdef BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES
test_tiger_separated_strip_contig_08()533 void test_tiger_separated_strip_contig_08()
534 {
535     std::string filename(tiff_in_GM + "tiger-separated-strip-contig-08.tif");
536 
537     using image_t = gil::cmyk8_planar_image_t;
538     image_t img;
539     gil::read_image(filename, img, gil::tiff_tag());
540 
541 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
542     gil::write_view(tiff_out + "test40.tif", gil::view(img), gil::tiff_tag());
543 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
544 }
545 
test_tiger_separated_strip_contig_16()546 void test_tiger_separated_strip_contig_16()
547 {
548     std::string filename(tiff_in_GM + "tiger-separated-strip-contig-16.tif");
549 
550     using image_t = gil::cmyk16_planar_image_t;
551     image_t img;
552     gil::read_image(filename, img, gil::tiff_tag());
553 
554 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
555     gil::write_view(tiff_out + "test41.tif", gil::view(img), gil::tiff_tag());
556 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
557 }
558 
test_tiger_separated_strip_planar_08()559 void test_tiger_separated_strip_planar_08()
560 {
561     std::string filename(tiff_in_GM + "tiger-separated-strip-planar-08.tif");
562 
563     using image_t = gil::cmyk8_planar_image_t;
564     image_t img;
565     gil::read_image(filename, img, gil::tiff_tag());
566 
567 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
568     gil::write_view(tiff_out + "test42.tif", gil::view(img), gil::tiff_tag());
569 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
570 }
571 
test_tiger_separated_strip_planar_16()572 void test_tiger_separated_strip_planar_16()
573 {
574     std::string filename(tiff_in_GM + "tiger-separated-strip-planar-16.tif");
575 
576     using image_t = gil::cmyk16_planar_image_t;
577     image_t img;
578     gil::read_image(filename, img, gil::tiff_tag());
579 
580 #ifdef BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES
581     gil::write_view(tiff_out + "test43.tif", gil::view(img), gil::tiff_tag());
582 #endif  // BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES    }
583 }
584 #endif  // BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES
585 
main()586 int main()
587 {
588 #ifdef BOOST_GIL_IO_USE_TIFF_LIBTIFF_TEST_SUITE_IMAGES
589     test_two_bit_minisblack_gray_image();
590     test_four_bit_minisblack_gray_image();
591     test_six_bit_minisblack_gray_image();
592     test_eight_bit_minisblack_gray_image();
593     test_ten_bit_minisblack_gray_image();
594     test_twelve_bit_minisblack_gray_image();
595     test_fourteen_bit_minisblack_gray_image();
596     test_sixteen_bit_minisblack_gray_image();
597     test_twentyfour_bit_minisblack_gray_image();
598     test_thirtytwo_bit_minisblack_gray_image();
599     test_four_entry_colormapped_image();
600     test_sixteen_entry_colormapped_image();
601     test_twohundred_twenty_five_entry_colormapped_image();
602     test_sixtyfive_thousand_entry_colormapped_image();
603     test_two_bit_contiguous_rgb_image();
604     test_four_bit_contiguous_rgb_image();
605     test_eight_bit_contiguous_rgb_image();
606     test_ten_bit_contiguous_rgb_image();
607     test_twelve_bit_contiguous_rgb_image();
608     test_fourteen_bit_contiguous_rgb_image();
609     test_sixteen_bit_contiguous_rgb_image();
610     test_twenty_four_bit_contiguous_rgb_image();
611     test_thirty_two_bit_contiguous_rgb_image();
612     test_two_bit_seperated_rgb_image();
613     test_four_bit_seperated_rgb_image();
614     test_eight_bit_seperated_rgb_image();
615     test_ten_bit_seperated_rgb_image();
616     test_twelve_bit_seperated_rgb_image();
617     test_fourteen_bit_seperated_rgb_image();
618     test_sixteen_bit_seperated_rgb_image();
619     test_twenty_four_bit_seperated_rgb_image();
620     test_thirty_two_bit_seperated_rgb_image();
621     test_eight_bit_contiguous_cmyk_image();
622     test_sixteen_bit_contiguous_cmyk_image();
623     test_eight_bit_separated_cmyk_image();
624     test_sixteen_bit_separated_cmyk_image();
625 #endif
626 
627 #ifdef BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES
628     test_tiger_separated_strip_contig_08();
629     test_tiger_separated_strip_contig_16();
630     test_tiger_separated_strip_planar_08();
631     test_tiger_separated_strip_planar_16();
632 #endif
633 
634 #if defined(BOOST_GIL_IO_USE_TIFF_LIBTIFF_TEST_SUITE_IMAGES) || defined(BOOST_GIL_IO_USE_TIFF_GRAPHICSMAGICK_TEST_SUITE_IMAGES)
635     return boost::report_errors();
636 #endif
637 }
638