大きな画像のセクションのビットマップイメージを生成するためにLibTiff.Netを使用して読んでいるインデックス付きTiffイメージがあります。 Tiffには、出力ビットマップで使用される256の32ビットピクセル値に変換する256の色項目があると私は信じています。Tifでインデックスされた8ビットカラーを32ビットカラーに変換する
int bitsPerSample = tif.GetField(TiffTag.BITSPERSAMPLE)[0].ToInt();
FieldValue[] colourIndex = tif.GetField(TiffTag.COLORMAP);
int[] palette = new int[256];
for(int i = 0; i < 256; i++)
{
short red = colourIndex[0].ToShortArray()[i];
short green = colourIndex[1].ToShortArray()[i];
short blue = colourIndex[2].ToShortArray()[i];
palette[i] = ?
}
RGBの短絡を32ビットピクセル値に変換するにはどうすればよいですか?
優れ、感謝を!それは働いているようだ。色の値は0〜65536なので、65535で割り、255を掛けましたが、予想される色とはまったく異なります。 – JWood
-32768から32767まで実行される 'short'を使用しています。libtiffが全範囲を使用しているかどうかわかりません。どちらの方法でも計算が正しく行われません。 – arx
申し訳ありませんが、今私はushortを使用していると述べたはずです。計算は正しいです。 – JWood