これが私の質問です。少し説明してください。
tiff画像をバッファに読み込んでいます。私のtiffの各ピクセルは、ushort(16ビットデータ、非負)で表されます。
私の画像サイズは64*64 = 4096です。tiffがバッファにロードされると、バッファの長さは8192(4096の2倍)になります。これは、私のバッファーでは、コンピューターが2バイトを使用して1つのピクセル値を格納しているためだと思います。
特定のピクセルの値を取得したいのですが、この場合、2バイトごとに1つのushortに結合する必要がありますか?
例:00000000 11111111-> 0000000011111111?
これが私のコードです:
public static void LoadTIFF(string fileName, int pxlIdx, ref int pxlValue)
{
using (Tiff image = Tiff.Open(fileName, "r"))
{
if (image == null)
return;
FieldValue[] value = image.GetField(TiffTag.IMAGEWIDTH);
int width = value[0].ToInt();
byte[] buffer = new byte[image.StripSize()];
for (int strip = 0; strip < image.NumberOfStrips(); strip++)
image.ReadEncodedStrip(strip, buffer, 0, -1);
// do conversion here:
//ushort bufferHex = BitConverter.ToUInt16(buffer, 0);
image.Close();
}
}
byte []バッファーを読み取って、16ビットのushortピクセル値を確実に取得できるようにするにはどうすればよいですか?
ありがとう