100分,绝不食言。

zx095x 2010-10-16 01:54:46
在Picture1中有一Image1,Picture1用Line方法画的线怎么和Image1中的图片融合成一体?
现在的问题是,保存的时候保存不了Image1中的图片,只保存了Line方法画的线,怎么才能一起保存成一个图片?
不知道我说明白了没有。
...全文
81 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
脆皮大雪糕 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 veron_04 的回复:]
引用 3 楼 chewinggum 的回复:
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top
Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
SavePicture ……
[/Quote]

其实vb里面的painpicture本质就是StretchBlt,把参数填全了就看到效果了
脆皮大雪糕 2010-10-16
  • 打赏
  • 举报
回复
Picture2 在picture1里面居中有何难?
picture2.left = (picture1.scalwidth - picture2.width)/2
picture2.top = (picture1.scalheigh - picture2.heigh)/2
zx095x 2010-10-16
  • 打赏
  • 举报
回复
可以使用picuture控件
但 Picture2的图片画到Picture1中要居中
不用API也行,只要能跟line画的融到一起

[Quote=引用 8 楼 veron_04 的回复:]
Stretchblt有些难度,image控件没有hdc属性,如果使用picuture控件还是比较方便的。
[/Quote]
zx095x 2010-10-16
  • 打赏
  • 举报
回复
Picture1.PaintPicture 画不上


[Quote=引用 6 楼 veron_04 的回复:]
呵呵,不用API了

VB code

Private Sub Command1_Click()
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top, Image1.Width, Image1.Height
Picture1.Line ……
[/Quote]
贝隆 2010-10-16
  • 打赏
  • 举报
回复
Stretchblt有些难度,image控件没有hdc属性,如果使用picuture控件还是比较方便的。
zx095x 2010-10-16
  • 打赏
  • 举报
回复
怎么用StretchBlt来复制image1的图像到Picture1中?
贝隆 2010-10-16
  • 打赏
  • 举报
回复
呵呵,不用API了

Private Sub Command1_Click()
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top, Image1.Width, Image1.Height
Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
SavePicture Picture1.Image, "C:\aa.jpg"
End Sub

快溜 2010-10-16
  • 打赏
  • 举报
回复
学习。
贝隆 2010-10-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chewinggum 的回复:]
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top
Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
SavePicture Picture1.Image, "C……
[/Quote]
这个代码可以保存,但是有一个问题,如果image1中的图片是缩小显示在Image中的话,那么保存后的图片就不和Picture1中的一致了。我觉得使用API函数,StretchBlt来复制image1的图像到Picture1中最好。
脆皮大雪糕 2010-10-16
  • 打赏
  • 举报
回复
Picture1.AutoRedraw = True
Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top
Picture1.Line (0, 0)-(Picture1.ScaleWidth, Picture1.ScaleHeight), vbRed
SavePicture Picture1.Image, "C:\aa.jpg"
贝隆 2010-10-16
  • 打赏
  • 举报
回复
你是怎么保存的?把代码贴上来看看
RedChimae 2010-10-16
  • 打赏
  • 举报
回复
参考一下VB使用API在内存中绘制曲线再显示到图片框上 http://download.csdn.net/source/2368159
思路,把Image1和Picture1中的图像都保存到自己创建的hDC上下文中,当需要保存时就用BitBlt依照次序把图像逐个拷贝到Picture1中保存……

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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