添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
public static System.Windows.Media.Imaging.BitmapImage GetBitmapImage(string fileName)
    if (File.Exists(fileName) == false) return null;
    FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
    var image = Image.FromStream(fileStream);  
    MemoryStream memory = new MemoryStream();
    image.Save(memory, ImageFormat.Jpeg);
    memory.Position = 0;
    System.Windows.Media.Imaging.BitmapImage bitmapimage = new System.Windows.Media.Imaging.BitmapImage();
    bitmapimage.BeginInit();
    bitmapimage.StreamSource = memory;
    bitmapimage.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad;
    bitmapimage.EndInit();
    bitmapimage.Freeze();
    fileStream.Close();
    fileStream.Dispose();
    return bitmapimage;

利用FileStream 打开图片,然后加载到MemoryStream中,并把FileStream 释放,这样加载到内存中的图片就不会提示被占用了。

public static System.Windows.Media.Imaging.BitmapImage GetBitmapImage(string fileName){ if (File.Exists(fileName) == false) return null; FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read); var image = Image.FromS
C#操作图片出现资源被占用用Image.FromFile读取图片后对图片进行其他操作时会出现IOException:“文件正由另一进程使用,因此该进程无法访问此文件”,可使用文件流读取图片解决该异常。 程序示例如下: 用VS2012新建一个winform程序,名为WindowsFormsApplication2,实现的功能为点击按钮,将指定路径下的bmp图片转换为jpg图片保存到相同路径下,保
使用流的方法展示图片,就算图片被删除 仍会显示: FileStream fileStream = new FileStream(url, FileMode.Open, FileAccess.Read); pictureBox.Image = Image.FromStream(fileStream); fileStream.Close(); fileStream.Dispose() 方法2(推荐) 在Properties下Resources.resx双击,添加资源,资源包括使用的图片、音视频(在resource添加的资源就不需要考虑路径的问题) 资源文件在文件路径下Resources文件夹下 pictureBox1.Image = Properties.Resources._1062; 注:资源文件不能以数字开头命名
FileStream fs = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); byte[] bytes = new byte[fs.Length]; fs.Read(bytes, ...
原因:使用Image.FromFile方法,这个方法会锁定图片文件,而且会导致内存占用增大,不建议使用,一下是两种解决方法: 一:将Image类转换成Bitmap类 1 System.Drawing.Image img = System.Drawing.Image.FromFile(filepath); 2 System.Drawing.Image bmp = new System.Drawing...
前几天维护的程序发生了内存不足的问题,经查看,是由于用户一次加载了15张图片,每张图片的大小都接近1M,用户把图片修改后,程序可以正常处理了。不过又想了一下,15张JPG图片的大小 加起来也不过是最大15M而已,也不至于内存不够呀!于是检查代码: FileStream fs = new FileStream(txtImageName.Text, FileMode.Open); BinaryReader br = new BinaryReader(fs);
原理我像大家都很清楚,这里只说.NET(c#实现)。服务器每次启动或者重启,都是没登陆的。那意味着启动项里不只能做,我就考虑到使用Windows服务。Windows服务在系统加载时候就会启动所有服务,把程序写进里面应该没错了。 需要重启,那就要一个时间来效验,写法都有很多。我这里采用ini来存放。 Time 记录要重启的时间,验证时间。 Day 用来累加天数。 代码如下:[Reboot] Time=02:02:01 Day=3 使用System.Timers.Timer循环验证时间(不知道始终对占用资源是否会太大) 代码如下:private void Timer_Elapsed(objec
微软的 .NET FRAMEWORK 现在可谓如火如荼了。但是,.NET 一直所为人诟病的就是“胃口太大”,狂吃内存,虽然微软声称 GC 的功能和智能化都很高,但是内存的回收问题,一直存在困扰,尤其是 winform 程序,其主要原因是因为.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。 以XP 系统为例子,程序启动后,打开任务管理器,会看到占用的内存量比较大,你把程序最小化,会发现该程序占用的内存迅速减小到一个很小的值,再恢复你的程序,你会发现内存占用又上升了,但是比你刚启动时的内存占用值还是小的,这就是一个资源
1.不使用反射机制就可以动态地创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型 2.应用程序需要在运行时从某个特定的程序集载入一个特定的类型,以便实现某个任务时可以用到该技术。 3.主要应用与类库,这些类库需要知道一个类型的定义,以便提供更多的功能 4.本源码只是一个DEMO,动态调用dll的方法非常简单实用。
问题情境:图片文件加载到pdf,程序没有退出,再次加载图片文件,提示被占用解决办法: 1.加载文件会锁定该文件,fromfile方法会导致占用内存较大,不使用该方法。 FileStream fileStream = new FileStream(filePath, FileMode.Open,FileAccess.Read); int byteLength = (int)fil...
在这个示例,`UpdateROI`方法会在多线程被调用,如果当前线程不是UI线程,那么将使用`Invoke`方法在UI线程上执行`UpdateROI`方法。 在UI线程上,使用`CreateGraphics`方法创建一个Graphics对象,并使用`DrawRectangle`方法绘制一个红色边框的矩形。 你可以在你的代码调用`UpdateROI`方法来更新pictureBox的ROI。