TiffBitmapEncoder不保存颜色

时间:2014-12-11 07:30:39

标签: c# tiff

我们的用户需要能够更改图像(在页面之间旋转\插入扫描等),因此我编写了一个应用程序,允许他们加载Tiff图像并根据需要进行编辑。

我遇到的问题是,当图像保存时,它会保存为黑白而不是彩色。加载的图像显示颜色没有问题,因此它似乎是导致问题的保存。

这是我用来从BitmapSource数组中保存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的新手,所以我们非常感谢任何指导。

如果您需要任何其他信息,请与我们联系。

的Tx

1 个答案:

答案 0 :(得分:0)

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

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