当前位置: 首页 > 编程语言 > C#

加载图片文件Image.FromFile VS FileStream分享

时间:2023-04-11 00:20:30 C#

C#学习教程:加载图像文件Image.FromFileVSFileStream但是现在我遇到了一个使用流加载文件的代码,我想知道使用流是否有优势......以及我总是加载文件的方式:privatevoidloadingfromStream(){DirectoryInfodirInfo=newDirectoryInfo(“C:/”);FileInfo[]fileInfoArr=dirInfo.GetFiles();FileInfofileInfo=fileInfoArr[0];//从流FileStream创建位图fileStream=fileInfo.OpenRead();位图bitmap=newBitmap(fileStream);图片currentPicture=(Image)bitmap}withprivatevoidloadingUsingImageClass{图片currentPicture=Image.FromFile(originalPath);如果您知道您的代码将从文件加载数据,请使用Image.FromFile-这显然是相当简单的代码,并且在处理文件时框架内部可能会进行优化。使用流更灵活,但除非您需要这种灵活性,否则请使用文件解决方案。如果要处理图片文件,当然第二种方案更好。在第一部分你有Bitmapbitmap=newBitmap(fileStream);你知道图像文件并不总是位图,它也可以是JPEG/PNG/TIFF等。尽管Image.FromFile非常专业,可以处理具有不同扩展名的图像文件。一般来说,FileStream常见于文件问题,而Image.FromFile多见于图像文件。这取决于您正在处理的文件类型。作为乔恩回答的补充:据我所知,这两种方法都不会做同样的事情。第一个是给你“C:”中的第一个图像,第二个只是给你一个图像的路径。所以第一个增加的复杂性不仅仅是因为它使用流。这等同于:这样做肯定更好。好吧,文件通常也被认为是流。这就是打开文件的主类称为FileStream的原因。但是有一个特定的操作系统功能可以更有效地处理图像文件。它被称为“内存映射文件”,这是一种将文件内容直接映射到内存中的功能。有一些烟雾和镜子,但它实际上使文件无需读取即可直接使用。存储文件数据所需的内存不占用页面文件中的空间。非常高效,当您对.bmp格式的图像使用FromFile()或Bitmap(string)构造函数时,您可以免费获得它。从流中加载图像通常需要两倍的内存量,这对于大图像来说总是一个问题。以上就是C#学习教程:加载图片文件Image.FromFileVSFileStream分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: