我从库中获取一个字节数组,我想将它保存为Tiff文件灰度/每像素16位。将图像保存为Tiff
我用这个方法来做到这一点:
private static void CreateBitmapFromBytes(byte[] pixelValues)
{
Bitmap pic = new Bitmap(1024, 1024, PixelFormat.Format16bppGrayScale);
BitmapData picData = pic.LockBits
(new Rectangle(0, 0, pic.Width, pic.Height)
, ImageLockMode.ReadWrite
, pic.PixelFormat
);
IntPtr pixelStartAddress = picData.Scan0;
Marshal.Copy(pixelValues, 0, pixelStartAddress, pixelValues.Length);
pic.UnlockBits(picData);
pic.Save("grid.tif", ImageFormat.Tiff); //< HERE IS THE ERROR
}
而我得到的错误“一般错误在GDI +发生”。 在Vista/32位和Win7/64位上都会出现此问题。 我使用.NET 4.0
编辑:
如果我改变ImageFormat.Tiff
到ImageFormat.Bmp
我没有错误。但它仍然是我想要的TIFF图像。
您在哪一行收到错误?你能提供一些像素值字节吗? – CodingBarfield 2012-03-06 14:33:55
其中一个原因 - 您没有权限写入目录 – Reniuz 2012-03-06 14:36:50
字节是...字节。采取2乘2,他们正在编写“ushort”的灰度。 – gregseth 2012-03-06 14:37:07