如何获得我在相框上绘制的图像?在我的应用程序中,我使用写意画创建了一个表单。但我无法保存我作为文件绘制的图像,有一个错误消息“对象引用未设置为对象的实例”。我正在使用代码
me.picturebox1.image.save(filename,sysytem.....jpeg)
任何人都知道请帮助我......谢谢
答案 0 :(得分:4)
我将假设您从未分配Image
的{{1}}属性,而是直接在从PictureBox控件检索到的PictureBox
对象上执行绘图命令。如果是这种情况,则执行绘图时Graphics
属性将保持Image
/ Nothing
。要解决此问题,请在初始化null
控件时将空图像指定给Image
属性:
PictureBox
然后,当您想要执行某些绘图时,请使用myPictureBox.Image = New Bitmap(myPictureBox.ClientSize.Width, _
myPictureBox.ClientSize.Height)
中的Graphics
对象而不是Image
:
PictureBox
通过这种方法,您可以像在当前代码中一样保存图像,只需在Using g As Graphics = Graphics.FromImage(myPictureBox.Image)
' do the drawing '
End Using
对象上调用Save
即可。
答案 1 :(得分:1)
您的代码似乎没有任何内在错误(除非问题出在其中一个参数上)。 PictureBox.Image.Save()
确实有用!
PictureBox可能会显示图像,但它所引用的Image
对象已经被处理掉了。您可以通过首先实现对可为空性的检查来消除对象引用错误:
If picturebox1.Image isnot Nothing Then
...
End If
此外,您应该检查绘制图像的代码...是否按预期处理引用?
答案 2 :(得分:0)
我尝试了类似的操作。
pictureBox1.Image.Save("C:\\tempStack.jpg", ImageFormat.Jpeg);
原因可能是pictureBox1(非常不可能)或pictureBox1.Image未设置。
使用
pictureBox1.Load("")
在尝试保存之前加载图像。