来自文件内容的QImage

时间:2013-07-25 07:22:17

标签: python qt pyside

我的数据库中有一个表,其中包含有关图像的信息(如宽度,高度,内容类型,文件类型和文件内容)。在列file_content中存储整个图像(不是像素数据或其他内容 - 整个文件被加入并存储为二进制数据)。现在我想在Python + PySide上的应用程序中从这条记录创建QImage(或QPixmap)。我该怎么办?

我尝试了loadFromData,但它需要原始像素数据,而不是像我这样的文件头文件。

实际上,我不知道要解决它。

UPD:我的代码示例不起作用:

    with open('Koala.jpg', 'r') as f:
        content = f.read()

    self.image = QtGui.QImage()

    print self.image.loadFromData(content)

结果:

False
Corrupt JPEG data: 1 extraneous bytes before marker 0xd9
JPEG datastream contains no image

2 个答案:

答案 0 :(得分:1)

这是一个愚蠢的错误!刚刚用with open('Koala.jpg', 'r') as f:替换with open('Koala.jpg', 'rb') as f:loadFromData加载了我的图片。

永远不要忘记将图像文件打开为二进制文件!

答案 1 :(得分:0)

QImage::loadFromData

请参阅docs