vb中如何根据PictureBox的大小自动调整相片

 我来答
149005501
推荐于2016-07-04 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

添加两个Picture控件,先载入Picture2,然后根据Picture1的大小自动调整显示。

代码如下:

Private Sub Form_Load()
    Picture1.AutoRedraw = True '重绘图片
    Picture1.AutoSize = False   '图片框大小不变
    Picture1.Visible = True
    'Picture1.BackColor = RGB(255, 255, 255) '设置图片框背景颜色
    Picture2.AutoSize = True 'Picture2自动缩放以适应图片,不可见
    Picture2.Visible = False
End Sub
Private Sub Command1_Click()
        Picture2.Picture = LoadPicture("C:\2.jpg")          '图片加载到Pic2
        If Picture2.ScaleWidth > Picture2.ScaleHeight Then
            imageWidth = Picture1.ScaleWidth
            imageHeight = Picture1.ScaleHeight * Picture2.ScaleHeight / Picture2.ScaleWidth
        Else
            imageWidth = Picture1.ScaleWidth * Picture2.ScaleWidth / Picture2.ScaleHeight
            imageHeight = Picture1.ScaleHeight
        End If
        Picture1.Cls
        Picture1.PaintPicture Picture2, (Picture1.ScaleWidth - imageWidth) / 2, (Picture1.ScaleHeight - imageHeight) / 2, imageWidth, imageHeight, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight
End Sub

效果(由于图片小,于是调整后上下空出来了):

人间四月78
2012-09-06
知道答主
回答量:20
采纳率:0%
帮助的人:8.2万
展开全部
主要是坐标的换算,将picturebox的坐标与shape的坐标一致,如此只要用鼠标调节shape大小来调节picture的大小调整相片。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网海1书生
科技发烧友

2012-09-06 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Picture1.PaintPicture Picture1.Picture, 0, 0, Picture1.Width, Picture1.Height
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
季旭jixu2008
2012-09-12 · TA获得超过253个赞
知道小有建树答主
回答量:267
采纳率:66%
帮助的人:130万
展开全部
Picture1.PaintPicture Picture2, 0, 0, Picture1.Width, Picture1.Height, 0, 0, Picture2.Width, Picture2.Height
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式