今天做一拍照程序,相机SDK什么都搞定,就为了显示图像并且保存照片的步骤卡了半天。
原因是预览图像使用了PictureBox,载入图片文件的方式为:
pictureBoxPhoto.Image = Image.FromFile(filepath) ;
但是这样操作会导致图像文件一直处于被占用状态,一旦拍照完成需要覆盖源图的时候,会因为文件操作未释放无法覆盖。
之前查了各种方案,什么深拷贝都上了,最后发现,用FileStream来操作最有效。
替换之前的代码:
using (FileStream lStream = new FileStream(filepath, FileMode.Open, FileAccess.Read))
pictureBoxPhoto.Image = Image.FromStream(lStream);
时间: 2024-10-06 15:00:33