C#里如何处理经JPEG压缩的TIFF文件?
我在处理多帧的tiff文件,但是有几帧是JPEG压缩格式。结果,当我欲使用BitmapFrame类(表示由解码器返回并被编码器接受的图像数据)处理时,在执行BitmapFrame.Create(bitmapSource)时出错。部分代码如下://code
Stream imageStreamSource = new FileStream(source, FileMode.Open, FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.None, BitmapCacheOption.Default);
int i = 0;
foreach (BitmapSource bitmapSource in decoder.Frames)
{
i++;
string filename = dest + "_" + i.ToString() + ".png";
xpsImages.Add(filename);
xpsImagesSize.Add(new Size((int)bitmapSource.Width, (int)bitmapSource.Height));
FileStream stream = new FileStream(filename, FileMode.Create);
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Interlace = PngInterlaceOption.On;
encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
encoder.Save(stream);
stream.Close();
}
imageStreamSource.Close();
//code
请问为什么会如此呢?如何在C#里处理经JPEG压缩的TIFF文件?恳请各位高手指教!