VB.Net图片背景保存
问题描述:
我需要保存PictureBox,包括其背景到JPG文件在硬盘中; 到目前为止,我可以从资源加载图片,然后将PictureBox保存到硬盘驱动器,但它删除背景; 我的代码如下:VB.Net图片背景保存
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
PictureBox1.Image = My.Resources.ResourceManager.GetObject("test.jpg")
Dim Image As New Bitmap(800, 400)
Dim MekSaveImage As Graphics = Graphics.FromImage(Image)
For Parts = 0 To 3
RRRR = 10 + Parts * 198
Dim RectPen As New Pen(Color.Red)
RectPen.Width = 2
Dim rect As New Rectangle(RRRR, 10, 188, 300)
MekSaveImage.DrawRectangle(RectPen, rect)
Next
PictureBox1.Image = Image
PictureBox1.Image.Save("C:\Test\Test.jpg", Imaging.ImageFormat.Jpeg)
End Sub
在此先感谢帮助/评论。
答
所以我想你在test.jpg
有你的Backgroundimage,并且想在上面画矩形。
从图像开始。资源本身没有改变。
Dim BackgroundImage As Bitmap = My.Resources.ResourceManager.GetObject("test.jpg")
从该图像中创建一个图形对象,并在顶部绘制矩形。您不需要从新图像创建图形图像。你可以使用现存的,然后将其用作画布。
Using g As Graphics = Graphics.FromImage(BackgroundImage)
'Draw the Rectangles
Using RectPen As New Pen(Color.Red)
RectPen.Width = 2
For Parts = 0 To 3
RRRR = 10 + Parts * 198
Dim rect As New Rectangle(RRRR, 10, 188, 300)
g.DrawRectangle(RectPen, rect)
Next
End Using 'RectPen
End Using 'g
PictureBox1.Image = BackgroundImage 'Display the result
BackgroundImage.Save("C:\Test\Test.jpg", Imaging.ImageFormat.Jpeg) 'Save to disk.
我使用Using
块,以确保处置的图形ressources对象和笔。
在循环之前,使用MekSaveImage对象将picturebox的'.BackgroundImage'绘制到'Image'。 – Jens 2014-09-23 07:48:39
谢谢Jens的评论;大概需要2行代码;你能告诉我代码吗...我正在尝试,但似乎我犯了一些错误。 – Abbas1999 2014-09-23 08:22:05