zoukankan      html  css  js  c++  java
  • Image.FromStream与Image.FromFile使用区别

    将一个图片加载并显示在picturebox上,一般情况下得到预期的结果,然而对于同一个filepath,
    若连续两次调用下面的语句系统将会报错(如用户多次选择加载同一张图片使用Image.FromFile配合PictureBox来加载并显示图片,
    但使用Image.FromFile会出现题,就是加载完文件后不自动释放,
    导致再次操作被关联文件时候出现类似“文件xxx正由另一进程使用,因此该进程无法访问该文件。”的错误,因此当要对一个文件进行多次操作时,
    最好不要使用Image.FromFile 而使用Image.FromStream。
     
     
    1、使用Image.FromFile 
    方法如下:
    pictureBox1.Image = Image.FromFile(filepath);
    或者pictureBox1.Image = Image.FromStream(new MemoryStream(File.ReadAllBytes(filepath)))  
     
    2、使用Image.FromStream
    方法如下:
    using (FileStream image = new FileStream(filepath, FileMode.Open))
    {
     pictureBox1.Image = Image.FromStream(image);
    }
     
    采用Image.FromStream代替Image.FromFile可以解决上述问题
     
    注意:Image.FromStream加载jpg,png等格式的图片可以,但是如果是gif的动态图就会有问题,
    如下:
     
     
    解决办法:就是在使用流的时候,不进行释放或者关闭即可,
    如下
    FileStream image = new FileStream(filepath, FileMode.Open);
    pictureBox1.Image = Image.FromStream(image);
  • 相关阅读:
    hdu 5446 Unknown Treasure lucas和CRT
    Hdu 5444 Elven Postman dfs
    hdu 5443 The Water Problem 线段树
    hdu 5442 Favorite Donut 后缀数组
    hdu 5441 Travel 离线带权并查集
    hdu 5438 Ponds 拓扑排序
    hdu 5437 Alisha’s Party 优先队列
    HDU 5433 Xiao Ming climbing dp
    hdu 5432 Pyramid Split 二分
    Codeforces Round #319 (Div. 1) B. Invariance of Tree 构造
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/6675061.html
Copyright © 2011-2022 走看看