我需要保存一个图像后,打开它从一个OFD.这是我的代码atm:
Dim ofd As New OpenFileDialog
ofd.Multiselect = True
ofd.ShowDialog()
For Each File In ofd.FileNames
Image.FromFile(File).Save("C:\Users\Jonathan\Desktop\e\tmp.png", Imaging.ImageFormat.png)
Next
字符串
在Image.FromFile(File).Save("C:\Users\Jonathan\Desktop\e\tmp.png", Imaging.ImageFormat.png)
行上,它出现了错误。
(note:该应用程序将建立在使这只是我的第一个代码,它将需要保存不复制)
5条答案
按热度按时间anhgbhbe1#
我会检查两件事
1.您要保存到的目录存在
1.您对此目录具有写入权限
hjqgdpho2#
打开或保存Image会对文件加锁。覆盖此文件需要首先对持有锁的Image对象调用Dispose()。
我不太理解你的代码,但你必须这样做:
字符串
Using语句确保释放img对象并释放文件锁。
xyhw6mcr3#
图像将锁定。
例如,我使用这个缓冲区将图像保存到内存流中。
字符串
ewm0tg9j4#
其中一个原因是您加载主图像的流(MemoryStream或任何其他流)已被释放!
比如这种情况:
这是一个将字节数组转换为位图的扩展方法,但使用语句将释放内存流,这将总是导致此错误:
字符串
eulz3vhy5#
这个问题似乎发生,因为
Image.Drawing.FromFile()
方法锁打开的文件!我遇到了同样的问题,我已经解决了这个问题,使用以下变通办法。
字符串
解决方法包括
1.保存修改后的图像在另一个文件命名这里
NEW.jpeg
img
object to release it1.将创建的文件重命名为原始文件名
在
OpenFile()
和Update()
方法之间,我调用了一个特定的方法来更改照片的捕获日期。型
这是一个程序的一部分,当相机的日期没有被正确初始化时,重命名捕获的照片日期。