如何保存Picture控件图片

我用SHGetFileInfo读取文件信息,用DrawIconEx将文件图片保存在Picture1中,然后再保存,图片与图标不一样,要么图片保存不全,要么图片比图标大,请... 我用SHGetFileInfo读取文件信息,用DrawIconEx将文件图片保存在
Picture1中,然后再保存,图片与图标不一样,要么图片保存不全,要么图片比图标大,请问如何设置Picture1.Width和Height,使其正好与图标文件大小一致(Picture1.AutoSize = True)。

代码如下:
retval = SHGetFileInfo(ByVal FileName, 0, shgFileInfo, Len(shgFileInfo), SHGFI_SYSICONINDEX Or SHGFI_ICON Or SHGFI_SHELLICONSIZE Or SHGFI_SMALLICON)
retval = DrawIconEx(Picture1.hdc, 0, 0, shgFileInfo.hIcon, 0, 0, 0, 0, DI_NORMAL)
Picture1.Refresh

SavePicture Picture1.Image, FileName
用VB读取一个文件的图标并保存到图片中,做到无边无痕。
不是:图片显示多大 保存多大,
而是:文件图标有多大就显示多大,然后保存多大。
以下代码加上还不行,是不是26.45836不对?
Dim smd As Integer
smd = Picture1.ScaleMode
Picture1.ScaleMode = 1
Picture1.Width = Format(Picture1.Image.Width / 26.45836, "0") * 15
Picture1.Height = Format(Picture1.Image.Height / 26.45836, "0") * 15
Picture1.ScaleMode = smd
展开
 我来答
匿名用户
2010-11-11
展开全部
添加几个常用文件类型的图标的大小到你的程序中,判断一下,是这些类型了,设置一下Picture1.Width、Picture1.Height为预定大小,如果不是,统一设成一定大小。
ljl88900
2010-11-10 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2629万
展开全部
'其他代码不变,增加判断图片大小,然后调整图片框大小并保存。

retval = SHGetFileInfo(ByVal FileName, 0, shgFileInfo, Len(shgFileInfo), SHGFI_SYSICONINDEX Or SHGFI_ICON Or SHGFI_SHELLICONSIZE Or SHGFI_SMALLICON)
retval = DrawIconEx(Picture1.hdc, 0, 0, shgFileInfo.hIcon, 0, 0, 0, 0, DI_NORMAL)
Picture1.Refresh

Dim smd As Integer
smd = Picture1.ScaleMode
Picture1.ScaleMode = 1
Picture1.Width = Format(Picture1.Image.Width / 26.45836, "0") * 15
Picture1.Height = Format(Picture1.Image.Height / 26.45836, "0") * 15
Picture1.ScaleMode = smd

SavePicture Picture1.Image, FileName
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宇桐非吧外交
2010-11-09 · TA获得超过693个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:424万
展开全部
Private Sub command1_Click()
CommonDialog1.FileName = b
CommonDialog1.Filter = "图片(*.jpg)|*.jpg"
CommonDialog1.ShowSave
Set Me.Picture1.Picture = Me.Picture1.Image
SavePicture Me.Picture1, CommonDialog1.FileName
Close #1
End Sub

本段程序复制过去即可应用 保存的图片 是 jpg 格式的 绝对 无边无痕
不过要添加一个 CommonDialog1 控件 图片 显示多大 保存多大

这个简单 你把 Picture1属性改哈 就行了
把 Picture1 AutoSize 属性设置成 true 加载图片多大 Picture1 就多大 会自动变换的 这样就满足你的要求了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式