Csharp/C#教程:如何在.NET 2.0中打开多帧TIFF图像格式图像?分享


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

Image.FromFile(@"pathfilename.tif") 

要么

 Image.FromStream(memoryStream) 

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

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

这是我使用的:

 private List GetAllPages(string file) { List images = new List(); 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; } 

我能够使用以下方法处理多帧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(); 

我没有尝试过.net 2.0中的解决方案,但MSDN显示了类成员的存在。 它确实解决了我在.net 4.5.2中的问题。

bitmap.Dispose();

在For循环之后,您需要Dispose位图。 否则,当尝试在其他进程中使用相同的文件时,您会收到错误“使用其他进程的文件”。

上述就是C#学习教程:如何在.NET 2.0中打开多帧TIFF图像格式图像?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注---计算机技术网(www.ctvol.com)!

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

ctvol管理联系方式QQ:251552304

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

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐