此代码块用于将从字节数组读取的图像数据保存到Image img
val = bytearray(message.msg)
size = re.split(r',', message.messageSize)
img = Image.new("L", (int(size[0]), int(size[1])), 0)
pix = img.load()
counter = 0
for y in range(int(size[1])):
for x in range(int(size[0])):
pix[x, y] = val[counter]
counter = counter + 1
然后,如果我img.save('test.png', 'PNG')
和QPixmap('test.png')
,它会正常显示图像。但是,如果我使用以下方法,图像将被扭曲。(截图和图像附加到下面的超链接)
self.imgQ = ImageQt(img) # img is PIL Image type
img.save('test.png', 'PNG') # this will be success
pixMap = QtGui.QPixmap.fromImage(self.imgQ)
self.scene1.clear()
self.scene1.addPixmap(pixMap)
self.scene1.update()
self.viewMessage.fitInView(QRectF(0, 0, int(size[0]), int(size[1])), Qt.KeepAspectRatio)
在我实现上面的代码后,image显示为扭曲。但如果我保存图像,图像看起来是正确的。
[更新]即使我使用我保存的PNG,它仍然会扭曲。
im = Image.open('hehe.png')
我上传了PNG文件here。