zoukankan      html  css  js  c++  java
  • c# 图片文件读取

     c#读取图片文件的方法很多,如可以通过

      Image.FromFile(path);但该方面 在释放 Image 之前,此文件将一直保持锁定状态(MSDN),所以对于共享文件或多用户访问的Image来说,该方法不合适。网上也提出来一些方法去解决,如在加载图像的时候用一种方法替代:

    System.Drawing.Image img = System.Drawing.Image.FromFile(filepath);
    System.Drawing.Image bmp = new System.Drawing.Bitmap(img);
    img.Dispose();

    虽然我们可以在程序中及时释放,但如果文件设置成只读或者用户未释放前还是无法访问的,会提示说该文件正在被另一进程访问。

    经过实践,我们可以通过FileStream 来打开文件,这样就可以实现不锁定Image文件,到时可以让多用户同时访问Image文件。具体文件实现如下:

    FileStream fs = File.OpenRead(path); //OpenRead
    int filelength = 0;
    filelength = (int)fs.Length; //获得文件长度
    Byte[] image = new Byte[filelength]; //建立一个字节数组
    fs.Read(image, 0, filelength); //按字节流读取
    System.Drawing.Image result = System.Drawing.Image.FromStream(fs);
    fs.Close();

     

    如果有更好的方法,欢迎大家交流


    作者:chhuic

    出处:http://chhuic.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    linux性能查看调优
    免密登录
    nginx配置
    Samba
    硬RAID与软RAID的区别
    LVM-扩容目录
    解决表面磁盘满,而实际没有大文件的问题
    LINUX下的JENKINS+TOMCAT+MAVEN+GIT+SHELL环境的搭建使用(JENKINS自动化部署)
    Docker 容器使用
    docker基础
  • 原文地址:https://www.cnblogs.com/chhuic/p/1624202.html
Copyright © 2011-2022 走看看