开发者

How to extract channel POD-type from a boost::gil homogeneous pixel type?

I have a class templated on <PIXEL>, assumed to be one of boost::gil's pixel types (for now, only either gray8_pixel_t or gray16_pixel_t, and I only expect to support homogeneous pixel types e.g rgb8_pixel_t in future).

The class needs to开发者_开发知识库 get hold of unsigned char or unsigned short as appropriate to the pixel type; I assume this is buried somehwere in the pixel class, but none of PIXEL::value_type, PIXEL::channel_type or PIXEL::channel_type::value type seems to be what I want.

What's the trick ?

(I could of course use type-indirection via some template-specialized helper structs to get this info:

template <typename PIXEL> struct types_for
  {};
template <> struct types_for<boost::gil::gray8_pixel_t>
  {typedef unsigned char channel_type;};
template <> struct types_for<boost::gil::gray16_pixel_t>
  {typedef unsigned short channel_type;};

but surely GIL must provide something equivalent already, if I could just find it...)


Aha.. this seems to do the trick:

typename boost::gil::channel_type<PIXEL>::type
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜