用bitblt画到picturebox上的图片与用picturebox的loadpicture方法在如的图片有何区别?

Alzzl 2005-01-20 11:39:40
如题
另外:用bitblt画到picturebox上的图片如何保存成文件
...全文
261 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinliangyu 2005-02-18
  • 打赏
  • 举报
回复
sendwb(风间苍月):
如果使用
SavePicture Picture1.Image, "文件名"
这样的办法,“只适用于"bmp"图”的判断是对的。如果你使用本人文档 http://blog.csdn.net/xinliangyu/archive/2005/01/31/Save_screen_image_to_a_File_in_VB_propramming.aspx中的过程
hDCToPicture
办法,只要能显示出来的图像都能保存为bmp文件:
SavePicture hDCToPicture(Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight), "bmp文件名"
sendwb 2005-02-18
  • 打赏
  • 举报
回复
以上这些方法,大家试过了吗,我是试过了,这种方法好象只适用于"bmp"图,如果是其他格式,最后保存的图像就是一片空白.所以我用C++写了一个DLL,才能把这种图保存下来
cso 2005-02-08
  • 打赏
  • 举报
回复
第二个
SavePicture Picture1.Image, "c:\tmp.bmp"
pikachu8guan 2005-02-07
  • 打赏
  • 举报
回复
首先 BitBlt 是使用了微软给大家提供的Api来画图形的.而LoadPicture只是进一步抽象了BitBlt

优点
1.BitBlt 速度快,灵活性大
2.LoadPicture 使用方便,兼容性大

缺点
1.BitBlt 使用复杂,易出错
2.LoadPicture 局限性大,速度慢
badboy168 2005-02-07
  • 打赏
  • 举报
回复
1、区别:bitblt能过你指定的坐标位置和宽、高将控件一问分区域放在目标内部,loadpicture从字意上就能看出是加载图像的意思,只允许加载VB支持的图像格式文件

2、保存: savepicture picture1.image,"c:\pic.bmp"
ningkang 2005-02-07
  • 打赏
  • 举报
回复
GZ
熊孩子开学喽 2005-01-20
  • 打赏
  • 举报
回复
完整过程如下:
Picture1.autoredraw=true
BitBlt ...
Picture1.refesh
SavePicture Picture1.image, "c:\1.bmp"
laviewpbt 2005-01-20
  • 打赏
  • 举报
回复
1 第一个不打猎
2 第二个
SavePicture Picture1.image, "c:\1.bmp"
viena 2005-01-20
  • 打赏
  • 举报
回复
当您对一个图象使用 BitBlt() 时,PictureBox 控件不知道象您使用 LoadPicture方法那样去调整大小。将 ScaleWidth 和 ScaleHeight 属性设置为图象的大小也不起作用。如果您想在使用 BitBlt 之后用 PictureBox 调整新图片的大小,必须用代码手工做,转换单位并处理边框,下面是如何这样做的一个简单示例:

Sub ResizePictureBoxToImage(pic as PictureBox, twipWd _
as Integer, twipHt as Integer)
'该代码假设所有的单位都为缇。如果
'不是,必须在调用该例程之前,转换为缇。
'这里也假设图象显示在0,0处。
Dim BorderHt as Integer, BorderWd as Integer
BorderWd = Pic.Width - Pic.ScaleWidth
BorderHt = Pic.Height - Pic.ScaleHeight
pic.Move pic.Left, pic.Top, twipWd + BorderWd, _
twipHt + BorderHt
End Sub
rainivy 2005-01-20
  • 打赏
  • 举报
回复
bitblt只是画在Picturebox中,如果Picturebox的AUTOREDRAW不设为真且没有处理WM_PAINT消息时,那么下次刷新Picturebox时,则会擦去Bitblt画上的图像。
loadpicture则是LOAD一个存在的图像文件。
tztz520 2005-01-20
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Picture1.AutoRedraw = True'要将Picture的AutoRedraw 属性设为true
End Sub

Private Sub Command1_Click()
SavePicture Picture1.Image, "f:\acdacd.bmp"'保存
End Sub

1,488

社区成员

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

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