• 2076阅读
  • 11回复

QImage导入大图时,导入不进 [复制链接]

上一主题 下一主题
离线laijunguang
 

只看楼主 倒序阅读 楼主  发表于: 2020-10-22
调用QImage load时,load宽度超过19000像素的图片后,就会失败,不知道什么原因
在线uidab

只看该作者 1楼 发表于: 2020-10-22
太大,超过范围了
有时候为了工作直接获得答案,而我却失去了思考的乐趣!


飘啊飘,何时能安居!
离线godlevel

只看该作者 2楼 发表于: 2020-10-23
image加载图片有内存限制
离线laijunguang

只看该作者 3楼 发表于: 2020-11-09
回 godlevel 的帖子
godlevel:image加载图片有内存限制 (2020-10-23 08:32) 

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

只看该作者 4楼 发表于: 2020-11-09
回 uidab 的帖子
uidab:太大,超过范围了[表情] (2020-10-22 15:28) 

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

只看该作者 5楼 发表于: 2020-11-09
回 godlevel 的帖子
godlevel:image加载图片有内存限制 (2020-10-23 08:32) 

电脑内存是够的
离线九重水

只看该作者 6楼 发表于: 2020-11-09
首先,你用QImageReader,读进图片;
然后,你scale一下适合的size;一定要适合。
最后,read一下,返回QImage即可。
离线九重水

只看该作者 7楼 发表于: 2020-11-09
一句话总结:大尺寸图片使用QImageReader,具体函数楼主自己研究一下。
正好给个机会给楼主思考。
离线laijunguang

只看该作者 8楼 发表于: 2020-11-10
回 九重水 的帖子
九重水:一句话总结:大尺寸图片使用QImageReader,具体函数楼主自己研究一下。
正好给个机会给楼主思考。[表情]
 (2020-11-09 14:32) 

好的,谢谢您
离线九重水

只看该作者 9楼 发表于: 2020-11-10
回 laijunguang 的帖子
laijunguang:好的,谢谢您 (2020-11-10 09:36) 

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

离线laijunguang

只看该作者 10楼 发表于: 2020-11-13
回 九重水 的帖子
九重水:弄好之后不要忘记贴个代码出来,[表情]
QImageReader里的
High Resolution verisons of Images那里有具体说明。
....... (2020-11-10 10:36) 

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

只看该作者 11楼 发表于: 2020-11-13
回 九重水 的帖子
九重水:弄好之后不要忘记贴个代码出来,[表情]
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读的图
快速回复
限100 字节
 
上一个 下一个