画像のピクセルを画像ボックスから TIFF ファイルにコピーしたいと思います。TIFFタグも使いたいのでLibTiff.Netを使っています。
MemoryStream
最初にイメージボックスからイメージをコピーしてからメモリストリームをバイト配列にコピーし、最後にバイト配列からバイトをTIFFファイルに書き出すだけだと思いました。しかし、私はそれを行う方法がわかりません。
すべてのプロセスを実行しましたが、ファイルに含まれているのは「バーコード」のようなものだけです。ああ、32 ビット浮動小数点の出力ファイルが必要です。
これが私がこれまでに得た場所です:
Tiff output = Tiff.Open(filename, "w");
if (output == null)
{
return;
}
else
{
MemoryStream ms = new MemoryStream();
this.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Tiff);
byte[] buff = ms.GetBuffer();
output.SetField(TiffTag.IMAGEWIDTH, width);
output.SetField(TiffTag.IMAGELENGTH, height);
output.SetField(TiffTag.SAMPLESPERPIXEL, 1);
output.SetField(TiffTag.BITSPERSAMPLE, 32);
output.SetField(TiffTag.SAMPLEFORMAT, 3);
output.SetField(TiffTag.ORIENTATION, BitMiracle.LibTiff.Classic.Orientation.TOPLEFT);
output.SetField(TiffTag.ROWSPERSTRIP, height);
output.SetField(TiffTag.PLANARCONFIG, PlanarConfig.CONTIG);
output.SetField(TiffTag.PHOTOMETRIC, Photometric.MINISBLACK);
output.SetField(TiffTag.COMPRESSION, Compression.NONE);
output.SetField(TiffTag.FILLORDER, FillOrder.MSB2LSB);
for (int i = 0; i < height; ++i)
output.WriteScanline(buff, i);
ms.Close();
output.Close();
}