请问VB内使用Image或者Picture,打开窗体时图片按本身比例缩放,如下

这是image的stretch为真的时候,这样会缩放,但不是按图片的本身来缩放了这是image的stretch为假的时候,这样就按图片本身来缩放了,理想的效果是这样,在规... 这是image的stretch为真的时候,这样会缩放,但不是按图片的本身来缩放了

这是image的stretch为假的时候,这样就按图片本身来缩放了,
理想的效果是这样,在规定宽6000高4000的规定内,就是图片的长度要是10000会自动缩放到6000,图片的高要是8000会自动缩放到4000,且高和宽是同时按原本比例缩放的.缩放后宽或者高不够有空白的地方这都无所谓,关键是图片按原本的比例来缩放就可以了,不要变形就好,请高手帮忙了
比如,A图为实际大小,在B图规定的方框内按比率全部显示出来,C图小于方框便在方框内居中对其显示,请高手帮忙了
展开
 我来答
nefu_20061617
推荐于2017-12-16 · TA获得超过2342个赞
知道大有可为答主
回答量:1064
采纳率:72%
帮助的人:1488万
展开全部

如果用Image控件,需要改变Image控件的位置和大小。

以下是用Picture1缩放图片的代码:

Set sp = LoadPicture("E:\a.jpg") '加载图片
w0 = Round(sp.Width / 2540 * 1440) '图片宽度(单位twip)
h0 = Round(sp.Height / 2540 * 1440) '图片高度(单位twip)
With Picture1
  .ScaleMode = 1 '坐标单位twip
  .AutoRedraw = True
  If w0 < .ScaleWidth And h0 < .ScaleHeight Then '图片小于Picture1
    .PaintPicture sp, (.ScaleWidth - w0) / 2, (.ScaleHeight - h0) / 2 '图片居中
  Else
    If w0 / h0 > .ScaleWidth / .ScaleHeight Then '上下留空白
      w1 = .ScaleWidth
      h1 = h0 * w1 / w0
    Else  '左右留空白
      h1 = .ScaleHeight
      w1 = w0 * h1 / h0
    End If
    '显示缩放的图片
    .PaintPicture sp, (.ScaleWidth - w1) / 2, (.ScaleHeight - h1) / 2, w1, h1
  End If
End With
追问

高手你好,产生这种情况了,请问该怎么办.

追答
把 With Picture1 这一句中的 Picture1 改成你的Picture控件名称。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式