vb如何把任意图片缩放到固定大小的PictureBox并保持图片原来的宽高比

比如说:(按像素),我要个公式就行了图片A:1254*453图片B:769*1720PictureBox分辨率为,500*200我要以下效果... 比如说:
(按像素),我要个公式就行了
图片A: 1254*453
图片B: 769*1720
PictureBox分辨率为,500*200
我要以下效果
展开
 我来答
艾迪康乐园
2013-09-19 · TA获得超过491个赞
知道小有建树答主
回答量:493
采纳率:0%
帮助的人:659万
展开全部

        PictureBox(图片框)是Visual Basic中用来显示图形的基本控件之一,用于在窗体指定位置显示图形信息,它支持多种格式的图形文件,包括位图文件(*.bmp,*.dib)、图标文件(*.ico)、光标文件(*.cur)、图元文件(*.wmf,*.emf),还有Internet 上流行的压缩位图格式的JPEG文件和GIF文件。最重要的功能是可以在它上面绘图。但是PictureBox只有自动适应图片大小的属性,而没有图片适应控件的属性。

        原题要“把任意图片缩放到固定大小的PictureBox并保持图片原来的宽高比”,也就是加载以后图片不能变形。这样比较繁琐一些,但是效果很好,仅供你参考。

        准备:在窗体上放置两个PictureBox控件,Picture1的长宽要相同(要是按照你的“

PictureBox分辨率为,500*200”,图像就变形了!),一个CommonDialog控件,一个Command控件。

 

代码如下:

 

Option Explicit

Private Sub Command1_Click()
    Dim imageWidth As Long
    Dim imageHeight 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)          '图片加载到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 If
   
End Sub

Private Sub Form_Load()
    Picture1.AutoRedraw = True '重绘图片
    Picture1.AutoSize = False   '图片框大小不变
    Picture1.Visible = True
    Picture1.BackColor = RGB(0, 255, 0) '设置图片框背景颜色
   
    Picture2.AutoSize = True 'Picture2自动缩放以适应图片,不可见
    Picture2.Visible = False
   
    Command1.Caption = "选择图片"
End Sub

 

该代码在VB6测试通过,结果如下:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式