c#如何将int数组编码为TIFF图像?

时间:2014-01-27 03:25:06

标签: c#

我有一个大小为[752 * 290]的int数组。 我需要使用16bppGrayScale像素格式将Int32数组编码为TIFF图像。 我怎么能这样做?

P.S。 int数组中的整数可以是0..65535(亮度,我认为) 我正在使用WPF。

1 个答案:

答案 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);
                    }

                }