求助:在窗体上有一个PICTURTEBOX控件,在控件上绘制一些曲线,我想将曲线 保存成图片(BMP) 如何做??

ThinYang 2006-09-10 11:40:06
在窗体上有一个PICTURTEBOX控件,在控件上绘制一些曲线,我想将曲线 保存成图片(BMP) 如何做??谢谢
...全文
390 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
stone_soup 2006-09-11
  • 打赏
  • 举报
回复
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'生成Bmp圖片
Dim bmp As Bitmap
bmp = Hardcopy.CreateBitmap(Me.PictureBox1)
bmp.Save("c:\test1.bmp")
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'在PictureBox1上畫一條線
Dim g As Graphics
g = Me.PictureBox1.CreateGraphics
g.DrawLine(New Pen(Color.Blue), 10, 10, 10, 50)
End Sub
End Class
Public Class Win32 '一些引用

Public Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal hSrcDC As Integer, ByVal xSrc As Integer, ByVal ySrc As Integer, ByVal dwRop As Integer) As Integer

Public Declare Function GetWindowDC Lib "user32" Alias "GetWindowDC" (ByVal hwnd As Integer) As Integer

Public Declare Function ReleaseDC Lib "user32" Alias "ReleaseDC" (ByVal hwnd As Integer, ByVal hdc As Integer) As Integer

Public Const SRCCOPY As Integer = &HCC0020

End Class
Public Class Hardcopy '創建Bmp

Public Shared Function CreateBitmap(ByVal Control As Control) As Bitmap

Dim gDest As Graphics

Dim hdcDest As IntPtr

Dim hdcSrc As Integer

Dim hWnd As Integer = Control.Handle.ToInt32



CreateBitmap = New Bitmap(Control.Width, Control.Height)

gDest = gDest.FromImage(CreateBitmap)



hdcSrc = Win32.GetWindowDC(hWnd)

hdcDest = gDest.GetHdc



Win32.BitBlt(hdcDest.ToInt32, 0, 0, Control.Width, Control.Height, hdcSrc, 0, 0, Win32.SRCCOPY)


gDest.ReleaseHdc(hdcDest)

Win32.ReleaseDC(hWnd, hdcSrc)



End Function



End Class



Knight94 2006-09-11
  • 打赏
  • 举报
回复
方法一:
抓屏,参看
http://www.syncfusion.com/faq/windowsforms/search/870.aspx

方法二:
先产生一个和picturebox同样大小的bitmap,然后直接在bitmap上划曲线,在把bitmap展现在picturebox。
这样保存所画得就简单多了,调用bitmap.save即可。
stone_soup 2006-09-11
  • 打赏
  • 举报
回复
菜鳥一個.
ThinYang 2006-09-11
  • 打赏
  • 举报
回复
stone_soup真实一位高手,非常谢谢

16,718

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧