PIL可以使用pyqt4资源文件打开图像吗?

时间:2012-12-13 01:28:51

标签: python pyqt4 python-imaging-library

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'

1 个答案:

答案 0 :(得分:1)

要从资源中读取图像文件,请使用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)

请注意,资源被设计为编译到应用程序中,因此它们是严格只读的。