cmyk.hpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // Copyright 2005-2007 Adobe Systems Incorporated
  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. #ifndef BOOST_GIL_CMYK_HPP
  9. #define BOOST_GIL_CMYK_HPP
  10. #include <boost/gil/metafunctions.hpp>
  11. #include <boost/mpl/range_c.hpp>
  12. #include <boost/mpl/vector_c.hpp>
  13. #include <cstddef>
  14. namespace boost { namespace gil {
  15. /// \addtogroup ColorNameModel
  16. /// \{
  17. /// \brief Cyan
  18. struct cyan_t {};
  19. /// \brief Magenta
  20. struct magenta_t {};
  21. /// \brief Yellow
  22. struct yellow_t {};
  23. /// \brief Black
  24. struct black_t {};
  25. /// \}
  26. /// \ingroup ColorSpaceModel
  27. using cmyk_t = mpl::vector4<cyan_t,magenta_t,yellow_t,black_t>;
  28. /// \ingroup LayoutModel
  29. using cmyk_layout_t = layout<cmyk_t>;
  30. /// \ingroup ImageViewConstructors
  31. /// \brief from raw CMYK planar data
  32. template <typename IC>
  33. inline typename type_from_x_iterator<planar_pixel_iterator<IC,cmyk_t> >::view_t
  34. planar_cmyk_view(std::size_t width, std::size_t height, IC c, IC m, IC y, IC k, std::ptrdiff_t rowsize_in_bytes)
  35. {
  36. using view_t = typename type_from_x_iterator<planar_pixel_iterator<IC,cmyk_t> >::view_t;
  37. return view_t(width, height, typename view_t::locator(planar_pixel_iterator<IC,cmyk_t>(c,m,y,k), rowsize_in_bytes));
  38. }
  39. } } // namespace gil
  40. #endif