2012-12-13 64 views
1

PIL可以使用pyqt4資源文件打開圖像嗎?可以使用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'

+0

你能得到一個類似於文件的資源數據嗎? –

+0

我也不知道。如果可能的話,我只想將圖像放到pyqt4資源文件中,而不是將它分隔成一個圖像文件。所以用戶不能編輯或刪除圖像文件。 – unice

+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) 

注意資源被設計成編譯成的應用程序,所以他們一嚴格只讀。

相關問題