2

でテンプレート化されたクラスがあり、のピクセル タイプの<PIXEL>1 つと見なされます (今のところ、 または のいずれかのみであり、今後は同種のピクセル タイプのみをサポートする予定です)。boost::gilgray8_pixel_tgray16_pixel_trgb8_pixel_t

クラスは、ピクセル タイプを保持するunsigned charか、適切なタイプを取得する必要があります。unsigned shortこれはピクセルクラスのどこかに埋もれていると思いますが、どれもPIXEL::value_typePIXEL::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はすでに同等のものを提供しているに違いありません...)

4

1 に答える 1

1

あはは..これはトリックを行うようです:

typename boost::gil::channel_type<PIXEL>::type
于 2010-03-30T12:53:10.950 に答える