1

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'

4

1 に答える 1

2

リソースから画像ファイルを読み取るには、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)

リソースはアプリケーションにコンパイルされるように設計されているため、厳密には読み取り専用であることに注意してください。

于 2012-12-13T18:21:50.680 に答える