1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- //
- // Copyright 2008 Christian Henning
- //
- // Distributed under the Boost Software License, Version 1.0
- // See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt
- //
- #ifndef BOOST_GIL_EXTENSION_IO_PNM_TAGS_HPP
- #define BOOST_GIL_EXTENSION_IO_PNM_TAGS_HPP
- #define BOOST_GIL_EXTENSION_IO_PNM_READ_ENABLED // TODO: Document, explain, review
- #include <boost/gil/io/base.hpp>
- #include <type_traits>
- namespace boost { namespace gil {
- /// Defines pnm tag.
- struct pnm_tag : format_tag {};
- /// see http://en.wikipedia.org/wiki/Portable_Bitmap_File_Format for reference
- /// Defines type for image type property.
- struct pnm_image_type : property_base< uint32_t >
- {
- using mono_asc_t = std::integral_constant<type, 1>;
- using gray_asc_t = std::integral_constant<type, 2>;
- using color_asc_t = std::integral_constant<type, 3>;
- using mono_bin_t = std::integral_constant<type, 4>;
- using gray_bin_t = std::integral_constant<type, 5>;
- using color_bin_t = std::integral_constant<type, 6>;
- };
- /// Defines type for image width property.
- struct pnm_image_width : property_base< uint32_t > {};
- /// Defines type for image height property.
- struct pnm_image_height : property_base< uint32_t > {};
- /// Defines type for image max value property.
- struct pnm_image_max_value : property_base< uint32_t > {};
- /// Read information for pnm images.
- ///
- /// The structure is returned when using read_image_info.
- template<>
- struct image_read_info< pnm_tag >
- {
- /// The image type.
- pnm_image_type::type _type;
- /// The image width.
- pnm_image_width::type _width;
- /// The image height.
- pnm_image_height::type _height;
- /// The image max value.
- pnm_image_max_value::type _max_value;
- };
- /// Read settings for pnm images.
- ///
- /// The structure can be used for all read_xxx functions, except read_image_info.
- template<>
- struct image_read_settings< pnm_tag > : public image_read_settings_base
- {
- /// Default constructor
- image_read_settings< pnm_tag >()
- : image_read_settings_base()
- {}
- /// Constructor
- /// \param top_left Top left coordinate for reading partial image.
- /// \param dim Dimensions for reading partial image.
- image_read_settings( const point_t& top_left
- , const point_t& dim
- )
- : image_read_settings_base( top_left
- , dim
- )
- {}
- };
- /// Write information for pnm images.
- ///
- /// The structure can be used for write_view() function.
- template<>
- struct image_write_info< pnm_tag >
- {
- };
- } // namespace gil
- } // namespace boost
- #endif
|