有没有办法(不将文件保存到磁盘然后删除它)将PIL Image对象转换为File对象?
答案 0 :(得分:3)
让我们看看文件对象是什么。
with open('test.txt', 'r') as fp:
print(fp)
# <_io.TextIOWrapper name='test.txt' mode='r' encoding='UTF-8'>
我怀疑出于您的目的,拥有一个BytesIO对象就足够了。
import io
from PIL import Image
im = Image.new("RGB", (100, 100))
b = io.BytesIO()
im.save(b, "JPEG")
b.seek(0)
但是,如果您确实想要相同的对象,则-
fp = io.TextIOWrapper(b)
答案 1 :(得分:0)
使用 tempfile
标准库中的临时文件。
from tempfile import TemporaryFile
from PIL import Image
fp = TemporaryFile()
img = Image.new("RGB", (100, 100))
img.save(fp, "PNG")
不要忘记重置位置!
fp.seek(0)
关闭文件将删除它
fp.close()