PIL - 无法读取打开的图像

时间:2012-07-31 22:43:54

标签: python python-imaging-library

我试图读取文件的格式,以便我可以正确地为它分配一个新名称并将其写入磁盘,但是当Image.open()在图像上时,我无法将图像写入磁盘。例如:

这有效:

>>>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()语句后,我无法找到它。你会如何“关闭”这个图像,所以我仍然可以将它写入磁盘?

3 个答案:

答案 0 :(得分:1)

根据我的评论中的建议,im.save('lala.jpg')是可行的方法。

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

答案 1 :(得分: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()

答案 2 :(得分:0)

正如在评论中所说,我最终使用了一个我以前从未知道的函数Image.save(),它很快解决了我的问题。