TiffBitmapEncoder 不保存颜色
本文关键字:颜色 保存 TiffBitmapEncoder | 更新日期: 2023-09-27 18:34:03
我们的用户需要能够更改图像(在页面之间旋转''插入扫描等),所以我编写了一个应用程序,允许他们加载Tiff图像并根据需要进行编辑。
我遇到的问题是,当保存图像时,它被保存为黑白而不是彩色。加载的图像以彩色显示没有问题,因此似乎是导致问题的保存。
这是我用来从位图源数组中保存 Tiff 图像的代码:
//create encoder
TiffBitmapEncoder tiffEncoder = new TiffBitmapEncoder();
tiffEncoder.Compression = TiffCompressOption.Ccitt4;
//loop through images and create frames
foreach (BitmapSource src in bitmapList)
{
BitmapFrame bmFrame = BitmapFrame.Create(src);
tiffEncoder.Frames.Add(bmFrame);
}
//create stream to write file
FileStream fStream = null;
try
{
fStream = new FileStream(path, FileMode.Create);
//Save Tiff image to disc
tiffEncoder.Save(fStream);
}
finally
{
if (fStream != null)
{
fStream.Close();
}
}
当我查看原始文件的属性时,它的位深度为 24,但新保存的图像的位深度为 1(黑白?
我是与 Tiffs 合作的新手,因此任何指导将不胜感激。
如果您需要任何其他信息,请告诉我。
德克萨斯
由于使用TiffCompressOption.Ccitt4
压缩,图像可能被转换为黑/白。CCITT 压缩适用于传真文档,仅支持黑/白图像。
相反,请使用更通用的压缩,如 LZW 或 Deflate。这将使图像数据作为 24 位或 32 位颜色数据保持不变。