如何在Python 3中将QImage(QPixmap)转换为PIL图像?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Python 3中将QImage(QPixmap)转换为PIL图像?相关的知识,希望对你有一定的参考价值。
我想将图像从QImage或Qpixmap类转换为PIL图像。我发现了这个:Convert PyQt to PIL image
但它似乎在Python3中不起作用。是实现这个方法的方法是Pyhton3还是更简单地使用新方法?
答案
根据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()
以上是关于如何在Python 3中将QImage(QPixmap)转换为PIL图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 PyQt4 中将 QImage 插入到 NxN 网格布局中?
如何使用 Qt 将可折叠元素(QMenu、QComboBox)渲染到位图缓冲区?
你如何从 sip.voidptr (QImage.constBits()) 到 ctypes void 或 char 指针?