PyQt5中QImage加载超高分辨率图片的限制及方案问询
问题:PyQt5加载大尺寸JPG图片失败及替代方案求助
问题场景
尝试用PyQt5的QImage加载一张分辨率为30592×18432的.jpg图片,代码如下:
image = QImage(image_path) # (QPixmap表现相同)
调用isNull()方法返回True。测试发现宽度小于30000的图片(如29500×17774)可正常加载,设备配备16GB内存,不存在内存约束——加载29500×17774图片时内存占用约3.5GB,显示后降至1.5GB。
推测问题源于QImage的尺寸上限,查阅资料得知QImage支持最大32767×32767像素,但实际加载仍失败。
疑问
Qt(C++)与PyQt的最大支持分辨率是否存在差异?
已尝试的解决方案
- 使用
cv.imread()加载30592×18432图片,但转换为QImage时返回NULL; - 降采样:仅作为最后方案,放大时会丢失细节;
- 分块转换:将
cv.imread()得到的Mat/Numpy.array图片按1000×1000块转换为QImage,虽可行但尚未完善。
版本信息
- 安装环境:Anaconda 22.9.0(64位)
- 环境目录:Base/Root
- Python:3.9.13(64位)
- PyQt:5.9.2
内容的提问来源于stack exchange,提问作者PrimuSPS
相关产品推荐
相关产品推荐

