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 合作的新手,因此任何指导将不胜感激。

如果您需要任何其他信息,请告诉我。

德克萨斯

TiffBitmapEncoder 不保存颜色

由于使用TiffCompressOption.Ccitt4压缩,图像可能被转换为黑/白。CCITT 压缩适用于传真文档,仅支持黑/白图像。

相反,请使用更通用的压缩,如 LZW 或 Deflate。这将使图像数据作为 24 位或 32 位颜色数据保持不变。