我可以将 PIL 图像数组保存到 Qt 中吗?
Can I save PIL image array into Qt?
我想保存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()
你可以用 QDataStream 做类似的事情,只是你需要将图像 numpy array 转换为 bytes
这是一个简单的实现:
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
我想保存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()
你可以用 QDataStream 做类似的事情,只是你需要将图像 numpy array 转换为 bytes
这是一个简单的实现:
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