查看完整版本: [-- QImage导入大图时,导入不进 --]

QTCN开发网 -> Qt基础编程 -> QImage导入大图时,导入不进 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

laijunguang 2020-10-22 15:09

QImage导入大图时,导入不进

调用QImage load时,load宽度超过19000像素的图片后,就会失败,不知道什么原因

uidab 2020-10-22 15:28
太大,超过范围了

godlevel 2020-10-23 08:32
image加载图片有内存限制

laijunguang 2020-11-09 13:44
godlevel:image加载图片有内存限制 (2020-10-23 08:32) 

谢谢您的回复,请问可以调节这个限制吗

laijunguang 2020-11-09 13:45
uidab:太大,超过范围了[表情] (2020-10-22 15:28) 

谢谢您的回复,我想问问有没有什么办法解决

laijunguang 2020-11-09 14:07
godlevel:image加载图片有内存限制 (2020-10-23 08:32) 

电脑内存是够的

九重水 2020-11-09 14:29
首先,你用QImageReader,读进图片;
然后,你scale一下适合的size;一定要适合。
最后,read一下,返回QImage即可。

九重水 2020-11-09 14:32
一句话总结:大尺寸图片使用QImageReader,具体函数楼主自己研究一下。
正好给个机会给楼主思考。

laijunguang 2020-11-10 09:36
九重水:一句话总结:大尺寸图片使用QImageReader,具体函数楼主自己研究一下。
正好给个机会给楼主思考。[表情]
 (2020-11-09 14:32) 

好的,谢谢您

九重水 2020-11-10 10:36
laijunguang:好的,谢谢您 (2020-11-10 09:36) 

弄好之后不要忘记贴个代码出来,
QImageReader里的
High Resolution verisons of Images那里有具体说明。


laijunguang 2020-11-13 08:46
九重水:弄好之后不要忘记贴个代码出来,[表情]
QImageReader里的
High Resolution verisons of Images那里有具体说明。
....... (2020-11-10 10:36) 

您好,谢谢您的建议,但是我们采用了另外一种方式进行处理,没有采用QImageReader,是这样的,我们的图片是由Opencv的格式转成QImage的,以便能够利用QGraphicsPixmapItem进行显示,但是在转的过程中发现,如果宽度或者高度太大,不知道为什么转的时候QImage会为空,但是,如果将图片先保存在本地,然后使用图片路径的方式,即QImage.load()这样的方式是可以打开图片的,但是由于速度太慢,所以我们也没有采用,最终我们采用的方式是,利用opencv的方式对图片进行切图,然后切完的图再依次转成QImage,而Qt则根据每个图片的数量,实例化多个QGraphicsPixmapItem,并且根据切图之后,每个图片都有坐标,再把QGraphicsPixmapItem移动到相应的位置,从而形成一张完整的图

laijunguang 2020-11-13 08:51
九重水:弄好之后不要忘记贴个代码出来,[表情]
QImageReader里的
High Resolution verisons of Images那里有具体说明。
....... (2020-11-10 10:36) 

        if img.ndim == 3:
            img_show = cv2.cvtColor(img, code=cv2.COLOR_BGR2RGB)
            height, width, bytes_per_component = img_show.shape
            bytes_per_line = bytes_per_component * width
            q_image = QImage(img_show.data, width, height, bytes_per_line, QImage.Format_RGB888)
转的代码是这个,我们采用的pyqt,img变量为传进来的opencv读的图


查看完整版本: [-- QImage导入大图时,导入不进 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled