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