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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    14-深度学习-卷积
    13-垃圾邮件分类2
    12-朴素贝叶斯-垃圾邮件分类
    11-分类与监督学习,朴素贝叶斯分类算法
    9-主成分分析
    8-特征选择
    7-逻辑回归实践
    6-逻辑回归
    2020安天杯-web的一点小思路
    攻防世界进阶--upload1
  • 原文地址:https://www.cnblogs.com/chhuic/p/1624202.html
Copyright © 2011-2022 走看看