我有一个大小为[752 * 290]的int数组。 我需要使用16bppGrayScale像素格式将Int32数组编码为TIFF图像。 我怎么能这样做?
P.S。 int数组中的整数可以是0..65535(亮度,我认为) 我正在使用WPF。
答案 0 :(得分:1)
这是一个有效的代码:
if (!System.IO.File.Exists(pathString))
{
System.Windows.Media.PixelFormat pf = System.Windows.Media.PixelFormats.Gray16;
int stride = newImage.imageWidth * 2;
BitmapPalette pallet = BitmapPalettes.Gray16;
double dpix = 216;
double dpiy = 163;
BitmapSource bmpSource = BitmapSource.Create(imageWidth, imageHeight, dpix, dpiy, pf, pallet, intArray, stride);
using (FileStream fs = new FileStream(pathString, FileMode.Create))
{
TiffBitmapEncoder encoder = new TiffBitmapEncoder();
encoder.Compression = TiffCompressOption.None;
encoder.Frames.Add(BitmapFrame.Create(bmpSource));
encoder.Save(fs);
}
}