如何在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中保存图片框(绘画程序)中的内容的主要内容,如果未能解决你的问题,请参考以下文章

C#图片框图片消失

VB 给图片添加文字水印

VB 如何获取屏幕图片数据保存在一个二进制数组里面?

如何将图像从一个图片框传输到另一个图片框? VB.NET 和 SQL

VB 处理扫描类型的tif图片时保存时出现灰色图

VB 修改图片的尺寸并保存,比如现有图片256*128,我要修改成15*15的尺寸,要源码!