vb.NET 用GDI+画在PictureBox控件里的图怎么保存

我在PictureBox里画的图该如何保存下来?

我先导入了一张图片到PictureBox1.Image
想在这张图片的基础上绘制内容,可是保存之后依然之后原先导入的图片,没有绘制的内容,我该怎么办?求助!!谢谢!!!好人一生平安!!!!!

附代码:
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
PictureBox1.Refresh()
Dim g As Graphics
g = PictureBox1.CreateGraphics
Dim b As New SolidBrush(Color.Black)
Dim f As New Font("全新硬笔行书简", 14.5, FontStyle.Regular)
g.DrawString(TextBox1.Text, f, b, 110, 150)
g.DrawString(TextBox2.Text, f, b, 254, 150)
g.DrawString(TextBox3.Text, f, b, 410, 150)
g.DrawString(TextBox4.Text, f, b, 110, 179)
g.DrawString(TextBox5.Text, f, b, 110, 206)
Dim s As Single
s = Int(Val(TextBox7.Text))
Dim f2 As New Font("全新硬笔行书简", s, FontStyle.Regular)
g.DrawString(TextBox6.Text, f2, b, 158, 255)
Dim f3 As New Font("全新硬笔行书简", 12, FontStyle.Regular)
g.DrawString(TextBox8.Text, f3, b, 52, 452)
g.DrawString(TextBox9.Text, f3, b, 80, 452)
g.DrawString(TextBox10.Text, f3, b, 156, 452)
g.DrawString(ComboBox1.Text, f3, b, 364, 452)
If ComboBox2.Text = "是" Then
g.DrawString(ComboBox2.Text, f3, b, 436, 452)
Else
g.DrawString(ComboBox2.Text, f3, b, 422, 452)
End If
g.DrawString(TextBox13.Text, f3, b, 52, 478)
g.DrawString(TextBox14.Text, f3, b, 80, 478)
g.DrawString(TextBox15.Text, f3, b, 156, 478)
g.DrawString(ComboBox3.Text, f3, b, 364, 478)
If ComboBox4.Text = "是" Then
g.DrawString(ComboBox4.Text, f3, b, 436, 478)
Else
g.DrawString(ComboBox4.Text, f3, b, 422, 478)
End If
g.DrawString(TextBox18.Text, f3, b, 52, 504)
g.DrawString(TextBox19.Text, f3, b, 80, 504)
g.DrawString(TextBox20.Text, f3, b, 156, 504)
g.DrawString(ComboBox5.Text, f3, b, 364, 504)
If ComboBox6.Text = "是" Then
g.DrawString(ComboBox6.Text, f3, b, 436, 504)
Else
g.DrawString(ComboBox6.Text, f3, b, 422, 504)
End If
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
TextBox5.Text = Format(Now, "yyyy年MM月dd日")
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
PictureBox1.Refresh()
End Sub

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
PictureBox1.Image.Save("d:\MF\" & TextBox1.Text & " " & TextBox5.Text & ".jpg")
MsgBox("生成成功!", vbOKOnly, "提示")
End Sub
End Class

'添加模块一个模块声明如下APIPublic Declare Function GdiTransparentBlt Lib "gdi32" (ByVal hdc1 As Long, ByVal x1 As Long, ByVal y1 As Long, ByVal W1 As Long, ByVal H1 As Long, ByVal Hdc2 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal W2 As Long, ByVal H2 As Long, ByVal Color As Long) As Long'hdc1 要绘图目标句柄'x1图片显示的横坐标位置'y1图片显示的纵坐标位置'w1图片缩放比例宽度'h1图片缩放比例高度'hdc2要绘制透明色的图片或控件(这里指picture)'x2一般这里填0(图片左上角起始坐标)'y2一般这里填0(图片左上角起始坐标)'w2图片宽度'h2图片高度'color绘制颜色(RGB(255,255,255)为透明色)'picture控件属性设置成visible=falseautosize=trueautoredraw=trueborderstyle=0窗体autoredraw=true简单例子Private Sub Form_Load()GdiTransparentBlt form1.hDC, 0, 0, form1.picture1.Width, form1.picture1.Height, form1.picture1.hDC, 0, 0, form1.picture1.Width, form1.picture1.Height, RGB(255, 255, 255) '画图End Sub
温馨提示:内容为网友见解,仅供参考
无其他回答

在VB中怎样将PictureBox内显示的内容(包括里边的控件)保存为图片文件...
在VB中将PictureBox内显示内容(包含里面加载的控件)保存为图片文件需要使用多个API函数来实现。被保存的图片是bmp格式的。 实现代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48...

在VB中怎样将PictureBox内显示的内容(包括里边的控件)保存为图片文件...
Private Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Lon...

关于vb.net中绘图并保存图片的问题
Public Class Form1 Dim imageName As String = "C:\\Documents and Settings\\...\\1126.jpg "Dim i As Image = Image.FromFile(imageName)Dim g As Graphics = Graphics.FromImage(i) '此处从背景图创建Greaphics Private Sub ...

VS2005 GDI在pictureBox上画图为什么会消失
在窗体上添加picturebox和两个button,添加button的点击事件,执行下面的代码你就可以看到差别了,第一段代码窗口最小化再还原图像就没有了,第二段代码没有这个问题,因为你直接在窗口上画的内容是不会被保存下来了,窗口一重绘图像自然就没有了。而通过对picturebox添加图片的方法,只要图片存在,picture...

请问在net中我用GDI+在picturebox里面画的图怎么能保存出来啊???急...
这个你在网上查查看

用VB截取DirectX窗口图片
VB.NET中利用 GDI+ 就可以截图,DX 也不例外。先声明 Imports System.Drawing.Imaging Dim G As Graphics Dim B1 As Bitmap Dim Sizes As Size Sizes.Width = 宽度 Sizes.Height = 高度 B1 = New Bitmap(宽度1, 高度1)G = Graphics.FromImage(B1)G.CopyFromScreen(New Point(x, y), ...

c# 怎么解决winform下保存picture box的图片防止GDI+一般错误
文件已经被占用 无法覆写 Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄 如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放 最后再把刚才的临时文件或者临时内存 覆写回文件 ...

C#picturebox覆盖保存GDI+ 中发生一般性错误
文件已经被占用 无法覆写 Bitmap对象属于非托管的GDI+对象 它会强烈的关联文件句柄 如果要对图像进行转存操作 建议使用Image.Save(Stream, ImageFormat)这个重载 先保存到内存流或者临时文件中,然后执行Bitmap.Dispose() 把原来图像资源释放 最后再把刚才的临时文件或者临时内存 覆写回文件 ...

VB中在PICTUREBOX中的画图问题
1.划线用GdipDrawLineI 不过gdi使用需要定义token等参数,还有用完要释放 2.你的要求较为复杂 这个需要多个透明的层嵌套(或者用gdi来绘制背景透明的图),否则不可能实现任何一个图形画了之后还可以选择并且拖动大小这个要求,而且这一步的话,每一个图在picturebox内需要定义可以如何拖动,是否可以向桌...

VS 有关GDI+画图的问题
1,新建个Form1窗体,拖一个大点的PicutreBox 2,右击PicutreBox控件,打开属性,切换到事件选项卡 3,双击Paint事件(也就是该PictureBox重绘时候执行的代码),进入Paint事件的代码编辑 4,写下这么几行代码 SolidBrush brush=new SolidBrush(Color.Red);\/\/画刷,红色的 e.Graphics.FillEllipse(brush...

相似回答