我正在尝试使用此行保存屏幕截图:
PictureBox1.Image.Save("D:\screenshot" & DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
但它说:NullReferenceException未处理..
答案 0 :(得分:1)
尝试:
PictureBox1.Image.Save("D:\screenshot\" & DateTime.Now.ToString( _
"yyyy-MM-dd_HH-mm-ss") & ".jpg", _
System.Drawing.Imaging.ImageFormat.Jpeg)
也就是说,在“截图”之后尝试使用“\”。
答案 1 :(得分:1)
您是否在PictureBox1
中设置了图片?我认为你没有将图片框Image
属性设置为图像,而是只是在框上绘制图像,这不是一回事。如果尚未将Image对象加载到PictureBox中,则没有Image对象可以调用Save on。
试着看看这个例子:
Private Function DrawText(ByVal Text As String) As Bitmap
Dim TextBitmap As New Bitmap(100, 100)
Dim Brush As New SolidBrush(Color.Blue)
Dim SelectedFont = New Font(FontFamily.GenericSerif, 40)
Using Graphic = Graphics.FromImage(TextBitmap)
Graphic.DrawString(Text, SelectedFont, Brush, 0, 0)
End Using
Return TextBitmap
End Function
用法:
PictureBox1.Image = DrawText("Hi") ' Setting an Image to PictureBox1.Image
PictureBox1.Image.Save("D:\HiPic.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)
上面的示例可能有效,也可能无效,因为这是UNTESTED
。但我的观点是,除非您将图片设置为SAVE
。PictureBox
属性,否则Image
方法将无效。