【发布时间】:2018-04-12 04:12:41
【问题描述】:
我正在尝试加载图像(在这种情况下是从字节中下载的 jpeg,因为它是从 Web 内容下载的)。 我已经查阅过一些帖子(例如1 和2),但由于某种原因,我无法重现这些答案,尽管 JPEG 是 PyQT4 完全实现的格式,如doc 中所述。
假设要加载到 QImage 中的图片是 one。
我首先使用请求下载图片(虽然我确定这与这个特定问题无关 - 我把它放在这里主要是出于便携性的原因......)。
import requests
r = requests.get(href, stream=True)
pict_bytes = r.content
之后,我可以使用 PIL 和 io 模块检查此图像是否 100% 正确:
from PIL import Image
import io
image = Image.open(io.BytesIO(pict_bytes))
image.show()
image.save('./test.jpeg')
在尝试将字节转换为 QImage 时,它变得令人困惑:
from PyQt4 import QtGui
qim = QtGui.QImage()
qim.loadFromData(pict_bytes)
qim.loadFromData(..) 无论我选择什么图片都会返回 False,对于 doc 中的函数描述,我无法理解。我还直接从文件中检查了:
with open('./test.jpeg', 'rb') as f:
content = f.read()
qim.loadFromData(content)
我是否遗漏了一些明显的东西,或者这是 PyQt4 与 python 3 的一些奇怪的行为?我将不胜感激您的见解...
编辑
我开始相信这里有一些错误(回复都与我已经尝试过的一致,以某种方式)。 PyQt4 QImage(以及我怀疑的 QPixmap)感觉不太对劲。
我目前正在使用 Windows 10(并在办公室使用 Windows 2008 Server)、Winpython 3.6 x64,并从 Christoph Gohlke 的unofficial depositery 安装了 PyQt4 4.11.4。
【问题讨论】:
标签: python python-3.x pyqt pyqt4 qimage