8 #ifndef BOOST_GIL_IO_READ_AND_CONVERT_IMAGE_HPP 9 #define BOOST_GIL_IO_READ_AND_CONVERT_IMAGE_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 Image>
35 typename std::enable_if
39 detail::is_reader<Reader>,
40 is_format_tag<typename Reader::format_tag_t>
44 reader.init_image(img, reader._settings);
45 reader.apply(
view(img));
54 template <
typename Device,
typename Image,
typename ColorConverter,
typename FormatTag>
59 image_read_settings<FormatTag>
const& settings,
60 ColorConverter
const& cc,
61 typename std::enable_if
66 is_format_tag<FormatTag>
70 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
73 reader_t reader = make_reader(device, settings, read_and_convert_t{cc});
83 template <
typename String,
typename Image,
typename ColorConverter,
typename FormatTag>
86 String
const& file_name,
88 image_read_settings<FormatTag>
const& settings,
89 ColorConverter
const& cc,
90 typename std::enable_if
94 is_format_tag<FormatTag>,
95 detail::is_supported_path_spec<String>
99 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
102 reader_t reader = make_reader(file_name, settings, read_and_convert_t{cc});
112 template <
typename String,
typename Image,
typename ColorConverter,
typename FormatTag>
115 String
const& file_name,
117 ColorConverter
const& cc,
118 FormatTag
const& tag,
119 typename std::enable_if
123 is_format_tag<FormatTag>,
124 detail::is_supported_path_spec<String>
128 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
131 reader_t reader = make_reader(file_name, tag, read_and_convert_t{cc});
141 template <
typename Device,
typename Image,
typename ColorConverter,
typename FormatTag>
146 ColorConverter
const& cc,
147 FormatTag
const& tag,
148 typename std::enable_if
153 is_format_tag<FormatTag>
157 using read_and_convert_t = detail::read_and_convert<ColorConverter>;
160 reader_t reader = make_reader(device, tag, read_and_convert_t{cc});
169 template <
typename String,
typename Image,
typename FormatTag>
171 String
const& file_name,
173 image_read_settings<FormatTag>
const& settings,
174 typename std::enable_if
178 is_format_tag<FormatTag>,
179 detail::is_supported_path_spec<String>
183 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
186 reader_t reader = make_reader(file_name, settings, read_and_convert_t{});
195 template <
typename Device,
typename Image,
typename FormatTag>
199 image_read_settings<FormatTag>
const& settings,
200 typename std::enable_if
205 is_format_tag<FormatTag>
209 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
212 reader_t reader = make_reader(device, settings, read_and_convert_t{});
221 template <
typename String,
typename Image,
typename FormatTag>
224 String
const& file_name,
226 FormatTag
const& tag,
227 typename std::enable_if
231 is_format_tag<FormatTag>,
232 detail::is_supported_path_spec<String>
236 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
239 reader_t reader = make_reader(file_name, tag, read_and_convert_t{});
248 template <
typename Device,
typename Image,
typename FormatTag>
252 FormatTag
const& tag,
253 typename std::enable_if
258 is_format_tag<FormatTag>
262 using read_and_convert_t = detail::read_and_convert<default_color_converter>;
265 reader_t reader = make_reader(device, tag, read_and_convert_t{});
Definition: algorithm.hpp:30
void read_and_convert_image(Reader &reader, Image &img, 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. Image memory is allocated.
Definition: read_and_convert_image.hpp:34
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