中易网

在vb.net中,运行代码之后在picturebox里用鼠标移动事件,画了一条曲线,我想保存这个曲线成图片格式

答案:2  悬赏:80  
解决时间 2021-02-16 05:52
这是我写的代码,保存之后只是一张空白图片……而没有我画的曲线啊??帮我看看
Public Class Form1
Dim preX As Single
Dim preY As Single
Private pStart, pEnd As Point
Dim ep As New Pen(Color.Red, 1)
Public image As Bitmap = Nothing
'Dim bm As New Bitmap(500, 500)
'Dim bm = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height, Me.PictureBox1.CreateGraphics)
'Dim g = Graphics.FromImage(bm)
Dim g As Graphics
Private Sub Picturebox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
Me.PictureBox1.Controls.Clear()
image = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
Graphics.FromImage(image).Clear(Color.White)
Me.PictureBox1.Image = DirectCast(image.Clone(), Bitmap)
If e.Button = Windows.Forms.MouseButtons.Left Then
pStart.X = e.X
pStart.Y = e.Y
End If

End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
image = New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height)
Using gr As Graphics = Graphics.FromImage(image)
Dim g As Graphics = PictureBox1.CreateGraphics()
If e.Button = Windows.Forms.MouseButtons.Left Then
pEnd.X = e.X
pEnd.Y = e.Y
g.DrawLine(ep, pStart, pEnd)
ListBox1.Items.Add(pStart.X & " " & pStart.Y)
pStart = pEnd
End If
End Using
' PictureBox1.Image. = bm

End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Image.Save("C:\Users\Administrator\Desktop\123.jpeg")
End Sub
最佳答案
Picture1.AutoRedraw = True
'必须设为 True ,这样才能图形和文本输出到屏幕,并存储在内存的图象中。然后可以使用 Image 属性
SavePicture Picture1.Image, "C:\Pic1.BMP"
'此代码保存的是 Picture1 里使用 Line 、 Circle 、PaintPicture 等绘图方法画出来的图片,包括背景色以及 PICTURE 属性指定的背景图片
'Picture1.Image 就是调用了 Picture1 的 Image 属性
'"C:\Pic1.BMP" 就是保存的文件名
'注意:Image 属性输出的图片总是 BMP 格式的。如果要保存成 JPG/GIF 等格式,则必须转换!
SavePicture Picture1.Picture, "C:\Pic1.BMP"
'此代码保存的是 Picture1 里的 PICTURE 属性里的图片
'PICTURE 属性输出的图片格式取决于 PICTURE 属性里的图片的格式。
'例如,如果使用 LoadPicture("C:\B1.GIF") 导入了一个 GIF 图片,则 PICTURE 属性输出的图片的格式就是 GIF 格式的
全部回答
第一点:解决数据如何保存的问题 曲线的数据保存在一个数组里,假定是a(n),数组的每个元素保存两个数据,a(i).x和a(1).y 其中: a(i).x是与i有关的一个常量,a(i).x=a*i+b, a(i).y是你的第i时点的数据 第二点: 写一个函数,作用就是把数组的数据绘制成曲线,draw(a) 第三点:解决的是何时绘图,以及如何移动的问题 当绘制完第一屏,又有新的数据时,这个该重新绘图 绘图之前做两件事,一是准备数据,二是清屏 每次绘图都要是调用draw(a), 新增点时使用循环 a(n).y=a(n-1) .y 把a(1)空出来,然后将新的数据赋值给a(1),就是:a(1).y=新数据 然后开始绘图,就行了 如果不是关于上述三点的问题,就不要再追问了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在15青春期,现在对xing很好奇也很想要,前
请问这张旧纸币回收是什么价钱?
NH3与HNO3反应会生成白烟吗?
李青竹西医诊所我想知道这个在什么地方
智慧蜗牛海景客栈在哪里啊,我有事要去这个地
小池这道诗描写的是什么地方的景色
联想电脑开机后怎么会黑屏
黑晶内丹的电饭煲能煮中药吗
关于空调的售前机售后机的问题
总不被人当回事怎么办 我举例说明下
海晟·名苑南区南门地址在哪,我要去那里办事
柳州刘益成他老婆
六年级下册人教版科学书几个单元的内容
关于读《地藏经》感应
丹姿水密码精华乳液的味道怪怪的,你觉得呢?
推荐资讯
淼淼韩式半永久妆美颜工作室我想知道这个在什
住在车库改装的房间有什么风水禁忌?
达旗第二中学在什么地方啊,我要过去处理事情
我有脚气,药店里买的药不管用,谁有偏方给个
撩男│从小白到老司机的撩汉技巧,你在哪个等
2014年怎么把小鸟带上长途汽车
Background Tasks Infrastructure Service服
鲸鱼对大自然的好处
中国卫生统计初审后就是等待责编处理怎么回事
汽车真皮座椅包含在裸车价里?
哪位叫我踢球时怎样断马赛回旋?
蒸煮过的乌龟壳还有药用价值吗?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?