截图在visual basic.net中保存错误

时间:2012-01-06 00:38:50

标签: vb.net

我正在尝试使用此行保存屏幕截图:

PictureBox1.Image.Save("D:\screenshot" & DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

但它说:NullReferenceException未处理..

2 个答案:

答案 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。但我的观点是,除非您将图片设置为SAVEPictureBox属性,否则Image方法将无效。