PIL可以使用pyqt4资源文件打开图像吗?
from PIL import Image, ImageWin
import res_rc #resource file
image = Image.open(":/images/image.png")
dim = ImageWin.Dib(image)
我收到此错误
IOError: [Errno 22] invalid mode ('rb') or filename :/images/image.png'
要从资源中读取图像文件,请使用 QFile 打开它,并将原始数据传递给 PIL 可以使用的类似文件的对象:
from PyQt4.QtCore import QFile
from cStringIO import StringIO
from PIL import Image, ImageWin
import res_rc
stream = QFile(':/images/image.png')
if stream.open(QFile.ReadOnly):
data = stream.readAll()
stream.close()
image = Image.open(StringIO(data))
dim = ImageWin.Dib(image)
请注意,资源旨在编译到应用程序中,因此它们是严格只读的。