2012-07-31 68 views
1

我試圖讀取一個文件的格式,所以我可以正確地爲它分配一個新名稱並將其寫入磁盤,但是當Image.open()在圖像上時,我不能將圖像寫入磁盤。因此,例如:PIL - 打開的圖像無法被讀取

這工作:

>>>file = open('708864.jpg') 
>>> open('lala.jpeg', 'w').write(file.read()) 

但是,這並不

>>>import Image 
>>>im = Image.open('708864.jpg') 
>>> im.format 
>>> open('lala.jpeg', 'w').write(file.read()) 

它創建了一個損壞的文件(lala.jpeg),這是無法用任何軟件打開。 我懷疑罪魁禍首是Image.open()。試圖找到Image.close()語句後,我找不到一個。你如何「關閉」這個圖像,所以我仍然可以將它寫入磁盤?

+1

是不是更容易只是重命名文件? – mrok 2012-07-31 22:54:08

+0

第二個腳本中的'file'從哪裏來?另外,如果你只是想保存圖像,你不能調用'im.save('lala.jpeg')'? – 2012-07-31 23:02:54

+0

@SamMussmann哦,哇,從來不知道這個功能。這使一切變得如此簡單。謝謝! – Wiz 2012-07-31 23:44:38

回答

1

正如我的評論建議,im.save('lala.jpg')是要走的路。

對於Image對象上的所有其他有趣方法,您可以查看documentation

0

一些解決方法,這只是想法:

import Image 
import StringIO 

file = open('/home/mrok/1.jpg') 
output = StringIO.StringIO(file.read()) 

im = Image.open('/home/mrok/1.jpg') 
im.format 

open('/home/mrok/2.jpg', 'w').write(output.getvalue()) 
output.close() 
0

正如評論說,最後我用我從來不知道之前的功能,Image.save(),迅速解決了我的問題。