8 #ifndef BOOST_GIL_IO_READ_AND_CONVERT_VIEW_HPP 9 #define BOOST_GIL_IO_READ_AND_CONVERT_VIEW_HPP 11 #include <boost/gil/io/base.hpp> 12 #include <boost/gil/io/conversion_policies.hpp> 13 #include <boost/gil/io/device.hpp> 14 #include <boost/gil/io/get_reader.hpp> 15 #include <boost/gil/io/path_spec.hpp> 17 #include <boost/mpl/and.hpp> 18 #include <boost/type_traits/is_base_and_derived.hpp> 20 #include <type_traits> 22 namespace boost{
namespace gil {
32 template <
typename Reader,
typename View>
35 typename std::enable_if
39 detail::is_reader<Reader>,
40 is_format_tag<typename Reader::format_tag_t>
44 reader.check_image_size(view.dimensions());
45 reader.init_view(view, reader._settings);
55 template <
typename Device,
typename View,
typename ColorConverter,
typename FormatTag>
60 image_read_settings<FormatTag>
const& settings,
61 ColorConverter
const& cc,
62 typename std::enable_if
67 is_format_tag<FormatTag>
71 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
74 reader_t reader = make_reader(device, settings, read_and_convert_t{cc});
84 template <
typename String,
typename View,
typename ColorConverter,
typename FormatTag>
87 String
const& file_name,
89 image_read_settings<FormatTag>
const& settings,
90 ColorConverter
const& cc,
91 typename std::enable_if
95 is_format_tag<FormatTag>,
96 detail::is_supported_path_spec<String>
100 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
103 reader_t reader = make_reader(file_name, settings, read_and_convert_t{cc});
113 template <
typename String,
typename View,
typename ColorConverter,
typename FormatTag>
116 String
const& file_name,
118 ColorConverter
const& cc,
119 FormatTag
const& tag,
120 typename std::enable_if
124 is_format_tag<FormatTag>,
125 detail::is_supported_path_spec<String>
129 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
132 reader_t reader = make_reader(file_name, tag, read_and_convert_t{cc});
142 template <
typename Device,
typename View,
typename ColorConverter,
typename FormatTag>
147 ColorConverter
const& cc,
148 FormatTag
const& tag,
149 typename std::enable_if
154 is_format_tag<FormatTag>
158 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
161 reader_t reader = make_reader(device, tag, read_and_convert_t{cc});
170 template <
typename String,
typename View,
typename FormatTag>
173 String
const& file_name,
175 image_read_settings<FormatTag>
const& settings,
176 typename std::enable_if
180 is_format_tag<FormatTag>,
181 detail::is_supported_path_spec<String>
185 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
188 reader_t reader = make_reader(file_name, settings, read_and_convert_t{});
197 template <
typename Device,
typename View,
typename FormatTag>
202 image_read_settings<FormatTag>
const& settings,
203 typename std::enable_if
208 is_format_tag<FormatTag>
212 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
215 reader_t reader = make_reader(device, settings, read_and_convert_t{});
224 template <
typename String,
typename View,
typename FormatTag>
227 String
const& file_name,
229 FormatTag
const& tag,
230 typename std::enable_if
234 is_format_tag<FormatTag>,
235 detail::is_supported_path_spec<String>
239 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
242 reader_t reader = make_reader(file_name, tag, read_and_convert_t{});
251 template <
typename Device,
typename View,
typename FormatTag>
256 FormatTag
const& tag,
257 typename std::enable_if
262 is_format_tag<FormatTag>
266 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
269 reader_t reader = make_reader(device, tag, read_and_convert_t{});
void read_and_convert_view(Reader &reader, View const &view, typename std::enable_if< mpl::and_< detail::is_reader< Reader >, is_format_tag< typename Reader::format_tag_t > >::value >::type *=nullptr)
Reads and color-converts an image view. No memory is allocated.
Definition: read_and_convert_view.hpp:34
Definition: algorithm.hpp:30
Definition: device.hpp:592
const image< Pixel, IsPlanar, Alloc >::view_t & view(image< Pixel, IsPlanar, Alloc > &img)
Returns the non-constant-pixel view of an image.
Definition: image.hpp:460
Helper metafunction to generate image reader type.
Definition: get_reader.hpp:27