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

  • 相关阅读:
    第九周个人总结
    用户模板和用户场景
    windows 滚动截图单文件版
    vue一键复制实现 笔记
    django 配置mysql流程以及运行报错的解决
    django urls导入views报错
    python学习2
    python学习1
    spark学习第五天
    spark第四天
  • 原文地址:https://www.cnblogs.com/chhuic/p/1624202.html
Copyright © 2011-2022 走看看