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();

 

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


你可能感兴趣的:(文件读取)