我这里有一个方法应该产生一个 System.Drawing.Image 实例。考虑以下先决条件:
- 我得到一个 BitmapSource 作为方法参数
- 下面是从 BitmapSource 转换为 Image 的代码。
转换:
public Image ConvertBitmapSourceToImage(BitmapSource input)
{
MemoryStream transportStream = new MemoryStream();
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(input));
enc.Save(transportStream);
transportStream.Seek(0, SeekOrigin.Begin);
return Image.FromStream(transportStream);
}
现在想象 BitmapSource 是从 Multipage Tif 文件创建的。我需要做的是使任何第 n 页在代码中可用。BitmapSource 类对此不提供支持,所以您知道如何从我的输入中获取除第一帧之外的任何内容吗?或者 BitmapSource 是否将整个 Tif 读取为一帧,丢失了帧信息?
如果可能的话,我可以在我的方法签名中添加另一个参数,如下所示:
public Image ConvertBitmapSourceToImage(BitmapSource input, int frame)
{
///[..]
}
有任何想法吗?
提前致谢!