如何在Python 3中将QImage(QPixmap)转换为PIL图像?

问题描述 投票:0回答:1

我想将图像从QImage或Qpixmap类转换为PIL图像。我发现了这个:Convert PyQt to PIL image

但它似乎在Python3中不起作用。是实现这个方法的方法是Pyhton3还是更简单地使用新方法?

python pyqt pyqt4 python-imaging-library pyqt5
1个回答
1
投票

根据docs

StringIO和cStringIO模块消失了。而是导入io模块并分别使用io.StringIO或io.BytesIO作为文本和数据。

所以解决方案是将cStringIO.StringIO转换为io.BytesIO

PyQt5:

import io
from PIL import Image
from PyQt5.QtGui import QImage
from PyQt5.QtCore import QBuffer

img = QImage("image.png")
buffer = QBuffer()
buffer.open(QBuffer.ReadWrite)
img.save(buffer, "PNG")
pil_im = Image.open(io.BytesIO(buffer.data()))
pil_im.show()

Pt和

import io
from PIL import Image
from PyQt4.QtGui import QImage
from PyQt4.QtCore import QBuffer

img = QImage("image.png")
buffer = QBuffer()
buffer.open(QBuffer.ReadWrite)
img.save(buffer, "PNG")
pil_im = Image.open(io.BytesIO(buffer.data()))
pil_im.show()
© www.soinside.com 2019 - 2024. All rights reserved.