PIL-可以为PIL提供二进制对象而不是文件句柄吗?

时间:2012-11-13 06:18:15

标签: python python-imaging-library

我可以让PIL使用文件:Image.open('example.jpg')

有没有办法对代码中创建的jpg执行相同操作,而无需将该jpg写入HDD:Image.open('binaryObject')

我试过给PIL一个函数的二进制输出,我试过(但可能有错误)解析器属性:http://effbot.org/imagingbook/imagefile.htm

from PIL import Image
f = open(image.jpg, "rb")    
f_data = f.read()
try:
    Image.parser()
    parser.feed(f_data)
    parser.close()
    print "OK"
except:
    print "fail"

我的硬盘无法跟上!

1 个答案:

答案 0 :(得分:2)

不是写入磁盘,而是使用StringIO对象将图像写入内存:

try:
    from cStringIO import StringIO
except ImportError:
    from StringIO import StringIO

fake_file = StringIO()
fake_file.write(f_data)

现在,您可以将fake_file作为文件句柄传递给Image()