188080501 / JQQmlImage

QML中Image控件升级版,利用预解码和预读取,提升图片加载速度
143 stars 47 forks source link

Linux车机上测试加载本地图片,大概记了一下时间,使用JQQmlImage和qml原生的Image加载出来的时间是差不多的,都需要3s左右,图片链接如下 #22

Open ShirleyLuoppx opened 1 month ago

ShirleyLuoppx commented 1 month ago

图片链接: https://pic.imge.cc/2024/08/02/66ac4a291f4e6.png

想问下老哥有没有其他加载图片的方案

ShirleyLuoppx commented 1 month ago

图片本身像素较大,但是占用大小内存不大,只有700多k,也许是32位深度的原因,导致这张图加载尤其慢,本来考虑的是在点击的时候就显示一个loading框,然后在Image的onStatusChange的Ready里面加载出来图片后将loading框取消掉,但是不知道为什么,loading框显示不出来,不确定是不是车机的gpu不太行。 希望可以得到回复,不胜感激。

188080501 commented 1 month ago

只是一个图片的话没必要用JQQmlImage,你可以从图片本身入手,比如你可以尝试下webp,看是否符合你们需求,加载速度是否有提升。图片我帮你转换好了,下载这个zip解压出来就行 66ac4a291f4e6.zip

如果webp你们因为Qt版本或者插件缺失无法加载的话,你可以尝试下bmp,但是我看你图片分辨率很大,我不确定bmp这个是否能真的提升。

ShirleyLuoppx commented 3 weeks ago

我是做一个相册的功能,试了一下我们这个qt版本引入不了加载webp的QWebEngine; 转成bmp格式后,占用内存一下子从700多k到了50多m,这个差距太大了吧,哈哈,但是加载速度好像确实是bmp的会快一点; 但是由于是相册功能,会展示图片后缀出来,所以应该不能切换格式展示。 不过多谢大佬回复,谢谢你啦。

188080501 commented 3 weeks ago

webp不需要引入WebEngine,是图片格式的插件,我不知道你是哪个版本的Qt,应该都是支持的 相册功能的话,我觉得做这个缓存意义不大,因为图片变化太多了

ShirleyLuoppx commented 2 weeks ago

对,我现在就是直接用的Image+QQuickImageProvider去加载,其他的webp的图片能正常加载,这张图不知道为啥就直接走到Image.Error,Qt版本5.15.12