我可以将PIL图像阵列保存到Qt吗?

时间:2018-06-21 04:19:29

标签: python numpy pyqt pyside pillow

我要保存PIL图像。 我试着用泡菜做,我能做。 例如,我想通过QtCore.QDataStream保存它。

我可以吗?

这是原始代码:

from PIL import Image
import numpy as np
import pickle

filename = 'Any_Image.png'

im = Image.open(filename)
data = np.array(im)

f = open("test_file.dat","wb")
print(type(data))
dumps = pickle.dump(data,f)

f = open("test_file.dat","rb")
tumps = pickle.load(f)
array = Image.fromarray(tumps)
array.show()

1 个答案:

答案 0 :(得分:1)

您可以使用QDataStream做类似的事情,只是需要将图像numpy 数组转换为字节

这是一个简单的实现:

from PIL import Image
import numpy as np
from PyQt5 import QtCore

filename = 'Goku.jpg'

im = Image.open(filename)
data = np.array(im)

file_ = QtCore.QFile("test_file.dat")
file_.open(QtCore.QIODevice.WriteOnly)
qdatastream = QtCore.QDataStream(file_)
bytedata = QtCore.QByteArray(data.tobytes())

print(qdatastream)

qdatastream << bytedata