diff options
Diffstat (limited to 'boost/gil/extension/io/pnm/detail/is_allowed.hpp')
-rw-r--r-- | boost/gil/extension/io/pnm/detail/is_allowed.hpp | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/boost/gil/extension/io/pnm/detail/is_allowed.hpp b/boost/gil/extension/io/pnm/detail/is_allowed.hpp new file mode 100644 index 0000000000..91be3091fa --- /dev/null +++ b/boost/gil/extension/io/pnm/detail/is_allowed.hpp @@ -0,0 +1,60 @@ +/* + Copyright 2009 Christian Henning + Use, modification and distribution are subject to 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_DETAIL_IS_ALLOWED_HPP +#define BOOST_GIL_EXTENSION_IO_PNM_DETAIL_IS_ALLOWED_HPP + +//////////////////////////////////////////////////////////////////////////////////////// +/// \file +/// \brief +/// \author Christian Henning \n +/// +/// \date 2008 \n +/// +//////////////////////////////////////////////////////////////////////////////////////// + +namespace boost { namespace gil { namespace detail { + +template< typename View > +bool is_allowed( const image_read_info< pnm_tag >& info + , mpl::true_ // is read_and_no_convert + ) +{ + pnm_image_type::type asc_type = is_read_supported< typename get_pixel_type< View >::type + , pnm_tag + >::_asc_type; + + pnm_image_type::type bin_type = is_read_supported< typename get_pixel_type< View >::type + , pnm_tag + >::_bin_type; + if( info._type == pnm_image_type::mono_asc_t::value ) + { + // ascii mono images are read gray8_image_t + return ( asc_type == pnm_image_type::gray_asc_t::value ); + } + + + return ( asc_type == info._type + || bin_type == info._type + ); +} + +template< typename View > +bool is_allowed( const image_read_info< pnm_tag >& /* info */ + , mpl::false_ // is read_and_convert + ) +{ + return true; +} + +} // namespace detail +} // namespace gil +} // namespace boost + +#endif |