Csharp/C#教程:从多页面提取帧tiff – c#分享


从多页面提取帧tiff – c#

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

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

1张图像有2页/帧和

1个图像只有1页/帧。

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

上述就是C#学习教程:从多页面提取帧tiff – c#分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

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(); 

  public void SaveFrame(string path, int frameIndex, string toPath) { using (FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) { BitmapDecoder dec = BitmapDecoder.Create(stream, BitmapCreateOptions.IgnoreImageCache, BitmapCacheOption.None); BitmapEncoder enc = BitmapEncoder.Create(dec.CodecInfo.ContainerFormat); enc.Frames.Add(dec.Frames[frameIndex]); using (FileStream tmpStream = new FileStream(toPath, FileMode.Create)) { enc.Save(tmpStream); } } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1031466.html

(0)
上一篇 2022年1月13日
下一篇 2022年1月13日

精彩推荐