]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
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 | #define BOOST_FILESYSTEM_VERSION 3 | |
9 | #define BOOST_GIL_IO_ADD_FS_PATH_SUPPORT | |
10 | #include <boost/gil.hpp> | |
11 | #include <boost/gil/extension/io/raw.hpp> | |
12 | ||
13 | #include <boost/mp11.hpp> | |
14 | #include <boost/core/lightweight_test.hpp> | |
15 | ||
16 | #include <fstream> | |
17 | ||
18 | #include "mandel_view.hpp" | |
19 | #include "paths.hpp" | |
20 | #include "subimage_test.hpp" | |
21 | ||
22 | namespace fs = boost::filesystem; | |
23 | namespace gil = boost::gil; | |
24 | namespace mp11 = boost::mp11; | |
25 | ||
26 | #ifdef BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES | |
27 | ||
28 | void test_read_image_info_using_string() | |
29 | { | |
30 | { | |
31 | /// raw_tag reader's can only constructed with char*, std::string, and LibRaw object | |
32 | ||
33 | using backend_t = gil::get_reader_backend<char const *, gil::raw_tag>::type; | |
34 | backend_t b = gil::make_reader_backend(raw_filename.c_str(), | |
35 | gil::image_read_settings<gil::raw_tag>()); | |
36 | backend_t backend = gil::read_image_info(raw_filename, gil::raw_tag()); | |
37 | ||
38 | BOOST_TEST_EQ(backend._info._width, 2176); | |
39 | BOOST_TEST_EQ(backend._info._height, 1448); | |
40 | } | |
41 | { | |
42 | fs::path my_path(raw_filename); | |
43 | using backend_t = gil::get_reader_backend<fs::path, gil::raw_tag>::type; | |
44 | backend_t backend = gil::read_image_info(my_path, gil::raw_tag()); | |
45 | ||
46 | BOOST_TEST_EQ(backend._info._width, 2176); | |
47 | BOOST_TEST_EQ(backend._info._height, 1448); | |
48 | } | |
49 | } | |
50 | ||
51 | void test_read_image() | |
52 | { | |
53 | { | |
54 | gil::rgb8_image_t img; | |
55 | gil::read_image(raw_filename, img, gil::raw_tag()); | |
56 | ||
57 | BOOST_TEST_EQ(img.width(), 2176); | |
58 | BOOST_TEST_EQ(img.height(), 1448); | |
59 | } | |
60 | ||
61 | { | |
62 | fs::path my_path(raw_filename); | |
63 | gil::rgb8_image_t img; | |
64 | gil::read_image(my_path, img, gil::raw_tag()); | |
65 | ||
66 | BOOST_TEST_EQ(img.width(), 2176); | |
67 | BOOST_TEST_EQ(img.height(), 1448); | |
68 | } | |
69 | } | |
70 | ||
71 | void test_read_and_convert_image() | |
72 | { | |
73 | gil::rgb8_image_t img; | |
74 | gil::read_and_convert_image(raw_filename, img, gil::raw_tag()); | |
75 | ||
76 | BOOST_TEST_EQ(img.width(), 2176); | |
77 | BOOST_TEST_EQ(img.height(), 1448); | |
78 | } | |
79 | ||
80 | void test_read_view() | |
81 | { | |
82 | gil::rgb8_image_t img(2176, 1448); | |
83 | gil::read_view(raw_filename, gil::view(img), gil::raw_tag()); | |
84 | } | |
85 | ||
86 | void test_read_and_convert_view() | |
87 | { | |
88 | gil::rgb8_image_t img(2176, 1448); | |
89 | gil::read_and_convert_view(raw_filename, gil::view(img), gil::raw_tag()); | |
90 | } | |
91 | ||
92 | void test_subimage() | |
93 | { | |
94 | run_subimage_test<gil::rgb8_image_t, gil::raw_tag>(raw_filename, gil::point_t(0, 0), gil::point_t(127, 1)); | |
95 | run_subimage_test<gil::rgb8_image_t, gil::raw_tag>(raw_filename, gil::point_t(39, 7), gil::point_t(50, 50)); | |
96 | } | |
97 | ||
98 | void test_dynamic_image() | |
99 | { | |
100 | using my_img_types = mp11::mp_list | |
101 | < | |
102 | gil::gray8_image_t, | |
103 | gil::gray16_image_t, | |
104 | gil::rgb8_image_t, | |
105 | gil::rgba8_image_t | |
106 | >; | |
107 | ||
108 | gil::any_image<my_img_types> image; | |
109 | gil::read_image(raw_filename.c_str(), image, gil::raw_tag()); | |
110 | } | |
111 | ||
112 | int main() | |
113 | { | |
114 | test_read_image_info_using_string(); | |
115 | test_read_image(); | |
116 | test_read_and_convert_image(); | |
117 | test_read_view(); | |
118 | test_read_and_convert_view(); | |
119 | //test_subimage(); | |
120 | test_dynamic_image(); | |
121 | ||
122 | return boost::report_errors(); | |
123 | } | |
124 | ||
125 | #else | |
126 | int main() {} | |
127 | #endif // BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES |