vb如何让图片自动缩放成图片框大小,图片框设定成固定大小,而图片要完整的显示在图片框里,自动缩放

 我来答
乐游原上的歌者
推荐于2016-04-09 · TA获得超过383个赞
知道小有建树答主
回答量:278
采纳率:71%
帮助的人:228万
展开全部
图片框设定成固定大小,而图片要完整的显示,
这就有一个问题了,载入的图片长宽比不是固定的,如果自动缩放为图片框大小,那么图片肯定会失真,比如把长幅图片里的瘦子变成了宽幅里的胖子,把宽幅里的胖子变成了长幅里的瘦子,那还能叫完整吗?,所以载入的图片一定还要保持原来的长宽比,对不对?
试试这个,要两个PictureBOX,一个COMMANDBUTTON,一个CommonDialog,Picture1的长宽要相同
Private Sub Command1_Click()
Dim pic_widht As Long
Dim pic_height As Long

CommonDialog1.Filter = "(图片文件)*.BMP;*.JPG;*.JPEG|*.BMP;*.JPG;*.JPEG"'用来选择图片
CommonDialog1.FilterIndex = 0
CommonDialog1.Action = 1
If CommonDialog1.FileName <> "" Then
Picture2.Picture = LoadPicture(CommonDialog1.FileName)

If Picture2.ScaleWidth > Picture2.ScaleHeight Then
pic_widht = Picture1.ScaleWidth
pic_height = Picture1.ScaleHeight * Picture2.ScaleHeight / Picture2.ScaleWidth
Else
pic_widht = Picture1.ScaleWidth * Picture2.ScaleWidth / Picture2.ScaleHeight
pic_height = Picture1.ScaleHeight
End If
Picture1.Cls
Picture1.PaintPicture Picture2, (Picture1.ScaleWidth - pic_widht) / 2, (Picture1.ScaleHeight - pic_height) / 2, pic_widht, pic_height, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight
Else

End If
End Sub

Private Sub Form_Load()
Picture1.AutoRedraw = True'用来显示图片可见
Picture1.AutoSize = False
Picture1.Visible = True
Picture1.BackColor = RGB(255, 0, 0)

Picture2.AutoSize = True'用来装载图片,不可见
Picture2.Visible = False

Command1.Caption = "装入图片"
End Sub
zx001z7d53
2011-09-27 · TA获得超过2万个赞
知道大有可为答主
回答量:2.4万
采纳率:52%
帮助的人:5495万
展开全部
用IMAGE控件,Stretch属性设置为TRUE
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-09-27
展开全部
1、IMAGE控件(推荐);
2、在图片框里进行手动刷新或画图。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-01-11
展开全部
a的取值范围是  1<a<3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式