注册 登录
编程论坛 VB6论坛

vb 加载图片会自动压缩,再次放大后很模糊,怎么实现不压缩加载图片?

lwlskydy 发布于 2023-05-04 11:03, 973 次点击
如何实现加载图片后依旧保持原来的清晰度,再次放大图片不会变得模糊?求源码!
6 回复
#2
wds12023-05-04 11:22
试试以下设置
Private Sub Form_Load()
    Me.ScaleMode = vbPixels ' 图像按像素调用
    Set Image1.Picture = LoadPicture("C:\Images\myimage.jpg")
End Sub
vbUser 0 用户定义:指示 object 的宽度和高度设置为自定义值。
vbTwips 1 缇(每逻辑英寸 1440 缇;每逻辑厘米 567 缇)。
vbPoints 2 磅(每逻辑英寸 72 点)。
vbPixels 3 像素 (显示器或打印机分辨率的最小单位)。
vbCharacters 4 字符(水平 = 每单位 120 缇,垂直 = 每单位 240 缇)。
vbInches 5 英寸
vbMillimeters 6 毫米
vbCentimeters 7 厘米
#3
lwlskydy2023-05-04 14:25
回复 楼主 lwlskydy
这样加载图片,无法按我想要的大小显示图片,而会铺满整个窗口。
我是想先按我设置的高度或者宽度显示图片(不压缩),单击图片后,图片放大(不会变得不清晰)。
#4
lwlskydy2023-05-04 14:36
回复 2楼 wds1
这样加载图片,无法按我想要的大小显示图片,而会铺满整个窗口。
我是想先按我设置的高度或者宽度显示图片(不压缩),单击图片后,图片放大(不会变得不清晰)。
#5
wds12023-05-04 15:23
你要实现的先图片缩放不失真。
1、你定义一个最大的图片尺寸,之后按照最大尺寸生成图片
2、每次缩放时,保持高度比,一般缩小图片是不会是真的。
3、至于小图放大,算法都会是真的,除非你“美学功底”特别好,可以实现肉眼级别的无损放大算法。
#6
风吹过b2023-05-04 18:50
1、临时加载大图,来源可以是 文件,资源,也可以是一个image控件里的大图,一定不能放小图。
2、缩小按长宽比放到要显示的指定位置。如果出现放大情况,说明你第一步里的图不够大。

VB6 不会自动缩小工程里资源的大小,如果image控件里加载的图片,原始是什么格式,VB6就用什么格式。可以使用 PropertyBag 来载出对象属性检查。
此方法可以用于解决窗口背景在不同DPI下有可能出现的问题。
#7
lwlskydy2023-05-05 09:09
回复 5楼 wds1
我有个想法是:
先用一个PictureBox 1 加载原图,然后再按比例缩放显示到另外一个PictureBox 2 上,如果要放大显示,则从PictureBox 1 上再次缩放显示到另外一个PictureBox 3上
现在的问题是,要用哪个方法或者哪个API函数实现图片复制显示功能?
1