代码之家  ›  专栏  ›  技术社区  ›  mirezus

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

  •  13
  • mirezus  · 技术社区  · 16 年前
    Image.FromFile(@"path\filename.tif")
    

    Image.FromStream(memoryStream)
    

    如何加载保留这些帧的图像文件? TIFF使用Image.SaveAdd方法逐帧保存。它们在其他查看器中工作,但.NET图像方法不会加载这些帧,只加载第一帧。

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

    3 回复  |  直到 16 年前
        1
  •  30
  •   Andy    9 年前

    以下是我使用的:

    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;
    }
    
        2
  •  4
  •   Chris    8 年前

    我能够使用下面的方法处理多帧tiff。

    Image multiImage = Image.FromFile(sourceFile);
    
    multiImage.Save(destinationFile, tiff, prams);
    
    int pageCount = multiImage.GetFrameCount(FrameDimension.Page);
    
    for (int page = 1; page < pageCount; page++ )
    {
        multiImage.SelectActiveFrame(FrameDimension.Page,page);
        multiImage.SaveAdd(dupImage,prams);
    }
    
    multiImage.SaveAdd(newPage, prams);
    multiImage.Dispose(); 
    

        3
  •  -1
  •   Adem Canpolat    8 年前

    Dispose();