我们的用户需要能够更改图像(在页面之间旋转\插入扫描等),因此我编写了一个应用程序,允许他们加载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
答案 0 :(得分:0)
由于正在使用TiffCompressOption.Ccitt4
压缩,图像可能会转换为黑/白。 CCITT压缩适用于传真文档,仅支持黑白图像。
相反,使用更通用的压缩,如LZW或Deflate。这将使图像数据不变为24或32位颜色数据。