• 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);
  • 相关阅读:
    JavaScript之arguments对象讲解
    JavaScript之工厂方式 构造函数方式 原型方式讲解
    JavaScript之常用方法讲解
    JavaScript之引用类型讲解
    JavaScript之数据类型讲解
    JavaScript之Cookie讲解
    __cdecl __stdcall __fastcall之函数调用约定讲解
    xp/2003开关3389指令
    php源码安装常用配置参数和说明
    用yum查询想安装的软件
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/6675061.html
Copyright © 2020-2023  润新知