如何在.NET 2.0中打开多帧TIFF图像格式图像?

mir*_*zus 14 c# system.drawing tiff

Image.FromFile(@"path\filename.tif")
Run Code Online (Sandbox Code Playgroud)

要么

Image.FromStream(memoryStream)
Run Code Online (Sandbox Code Playgroud)

即使源是多帧TIFF文件,两者都只生成一帧的图像对象.如何加载保留这些帧的图像文件?逐帧使用Image.SaveAdd方法保存tiff.它们在其他查看器中工作,但.NET Image方法不会加载这些帧,只有第一个.

这是否意味着无法从我传入位图集合的方法返回多帧TIFF以用作帧?

Otá*_*cio 29

这是我使用的:

private List<Image> GetAllPages(string file)
{
    List<Image> images = new List<Image>();
    Bitmap bitmap = (Bitmap)Image.FromFile(file);
    int count = bitmap.GetFrameCount(FrameDimension.Page);
    for (int idx = 0; idx < count; idx++)
    {
        // save each frame to a bytestream
        bitmap.SelectActiveFrame(FrameDimension.Page, idx);
        MemoryStream byteStream = new MemoryStream();
        bitmap.Save(byteStream, ImageFormat.Tiff);

        // and then create a new Image from it
        images.Add(Image.FromStream(byteStream));
    }
    return images;
}
Run Code Online (Sandbox Code Playgroud)