如何在vb中保存图片框(绘画程序)中的内容
Posted
技术标签:
【中文标题】如何在vb中保存图片框(绘画程序)中的内容【英文标题】:how to save what is in a picture box(paint program) in vb 【发布时间】:2015-02-25 19:44:53 【问题描述】:我正在 microsoft visual basic 2010 中创建一个基本的绘图程序,并使用图片框作为我的画布,我想知道如何将图片框中的内容保存到您的计算机,作为 jpeg、pdf 或其他
【问题讨论】:
msdn.microsoft.com/en-us/library/9t4syfhh(v=vs.110).aspx 【参考方案1】:首先您需要将其保存为 .bmp,然后转换为所需的格式。
【讨论】:
【参考方案2】:在按钮单击事件中使用 SaveFileDialog...
Dim SFD As New SaveFileDialog
SFD.Filter = "BMP Images|*.bmp|JPG Images|*.jpg|PNG Images|*.png|GIF Images|*.gif"
If SFD.ShowDialog() = DialogResult.OK Then
PictureBox1.Image.Save(SaveFileDialog1.FileName)
End If
【讨论】:
【参考方案3】:这应该可以工作...
Imports System.Drawing.Imaging
Private Sub btnSavePictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles btnSavePictureBox1.Click
Dim WhateverSavePath As String = "C:\WhateverSavePath\"
Dim WhateverImageName As String = "WhateverImageName.png"
Dim bm As Bitmap = New Bitmap(PictureBox1.ClientSize.Width, PictureBox1.ClientSize.Height)
PictureBox1.DrawToBitmap(bm, PictureBox1.ClientRectangle)
Try
If My.Computer.FileSystem.FileExists(WhateverSavePath & WhateverImageName) Then
Dim overwrite As Integer
overwrite = MessageBox.Show("File exist." & vbCrLf & vbCrLf & WhateverSavePath & WhateverImageName & vbCrLf & vbCrLf & "Do you want to overwrite the existing file?", "Overwrite file?", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If overwrite = vbYes Then
FileIO.FileSystem.DeleteFile(WhateverSavePath & WhateverImageName)
bm.Save(WhateverSavePath & WhateverImageName, ImageFormat.Png)
MessageBox.Show("Image Saved" & vbCrLf & vbCrLf & WhateverSavePath & WhateverImageName, "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
ElseIf overwrite = vbNo Then
Exit Sub
End If
Else
bm.Save(WhateverSavePath & WhateverImageName, ImageFormat.Png)
MessageBox.Show("Image Saved" & vbCrLf & vbCrLf & WhateverSavePath & WhateverImageName, "Information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
bm.Dispose()
Catch ex As Exception
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
【讨论】:
一些注意事项:1) 如果他不希望它一直是相同的文件名怎么办? 2) 如果他要指定自定义路径怎么办? 3)Image
也有一个 .Save
属性。把它做成 Bitmap 会浪费内存。
1 和 2 很容易弄清楚。这只是一个例子。 3 我接受它,因为它是一个正在绘制的画布,需要将其转换为位图,然后保存。
他们很容易成为SaveFileDialog
。 :)以上是关于如何在vb中保存图片框(绘画程序)中的内容的主要内容,如果未能解决你的问题,请参考以下文章