でテンプレート化されたクラスがあり、のピクセル タイプの<PIXEL>
1 つと見なされます (今のところ、 または のいずれかのみであり、今後は同種のピクセル タイプのみをサポートする予定です)。boost::gil
gray8_pixel_t
gray16_pixel_t
rgb8_pixel_t
クラスは、ピクセル タイプを保持するunsigned char
か、適切なタイプを取得する必要があります。unsigned short
これはピクセルクラスのどこかに埋もれていると思いますが、どれもPIXEL::value_type
、PIXEL::channel_type
またはPIXEL::channel_type::value type
私が望むものではないようです。
トリックは何ですか?
(もちろん、テンプレートに特化したヘルパー構造体を介して型間接化を使用して、この情報を取得することもできます。
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;};
しかし、私がそれを見つけることができれば、確かにGILはすでに同等のものを提供しているに違いありません...)