【发布时间】:2021-07-14 20:33:36
【问题描述】:
我需要将应用程序表单的图像保存为图片文件,例如 jpeg、bmp 或 png 等。
互联网上的许多来源都给出了这个或类似的代码示例来捕获表单的图像:
Private Function TakeScreenShot(ByVal Control As Control) As Bitmap
Dim tmpImg As New Bitmap(Control.Width, Control.Height)
Using g As Graphics = Graphics.FromImage(tmpImg)
g.CopyFromScreen(Control.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(Control.Width, Control.Height))
End Using
Return tmpImg
End Function
并保存该代码捕获的表单图像:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TakeScreenShot(Me).Save("c:\My Folder\Screenshot.png", System.Drawing.Imaging.ImageFormat.Png)
End Sub
捕获表单图像的代码似乎可以工作(不会导致错误),但是将图像保存到文件的代码行会出现此错误:
“System.Runtime.InteropServices.ExternalException”类型的未处理异常发生在 >System.Drawing.dll GDI+ 中出现一般错误。
我尝试了代码的变体,但在所有情况下都是将图像保存到文件的语句
.Save("c:\My Folder\Screenshot.png", System.Drawing.Imaging.ImageFormat.Png)
总是给出异常错误。我究竟做错了什么?有什么建议吗?
【问题讨论】:
-
运行程序的用户帐户是否对您要保存到的目录有写权限?
-
您关于写权限的问题给了我解决问题的方法。谢谢。
-
不客气 :) 我认为您可以接受重复的建议来关闭此问题,以帮助保持网站整洁。
标签: vb.net forms file graphics