从多页tiff中提取帧 - c#

uno*_*uno 4 c#

有一个多页tiff,我想从这个Tiff文件中提取page [n]/frame [n]并保存它.

如果我的多页tiff有3帧,在我提取一页/帧之后 - 我想留下

1张图像有2页/帧和

1个图像只有1页/帧.

Gar*_*del 6

下面是一些代码,用于将多帧tiff中的最后一帧保存到单页tiff文件中.(为了使用此代码,您需要添加对PresentationCore.dll的引用).

Stream imageStreamSource = new FileStream(imageFilename, FileMode.Open, FileAccess.Read, FileShare.Read);
        MemoryStream memstream = new MemoryStream();
        memstream.SetLength(imageStreamSource.Length);
        imageStreamSource.Read(memstream.GetBuffer(), 0, (int)imageStreamSource.Length);
        imageStreamSource.Close();

        BitmapDecoder decoder = TiffBitmapDecoder.Create(memstream,BitmapCreateOptions.PreservePixelFormat,BitmapCacheOption.Default);

        Int32 frameCount = decoder.Frames.Count;

        BitmapFrame imageFrame = decoder.Frames[0];

        MemoryStream output = new MemoryStream();
        TiffBitmapEncoder encoder = new TiffBitmapEncoder();
        encoder.Frames.Add(imageFrame);
        encoder.Save(output);

        FileStream outStream = File.OpenWrite("Image.Tiff");
        output.WriteTo(outStream);
        outStream.Flush();
        outStream.Close();
        output.Flush();
        output.Close();
Run Code Online (Sandbox Code Playgroud)