PIL除了save()之外还有其他可转换图片格式的API吗?
需要把一个jpg格式的文件转成png,然后上传,源文件来自网络。
目前我知道的:
python
from PIL import Image with open('a.jpg', 'w') as w: w.write(data) orin = Image.open('a.jpg') orin.save('a.png')
显然需要耗费多余的两次磁盘IO,有没有更好的转换方法呢?
刚大木附体
10 years, 9 months ago
Answers
你用的是 Python 啊啊啊,给 PIL「file-like objects」就行,谁说一定要是位于磁盘上的文件了?
python
>>> data = open('b.png', 'rb').read() >>> from PIL import Image >>> import io >>> ifile = io.BytesIO(data) >>> im = Image.open(ifile) >>> ofile = io.BytesIO() >>> im.save(ofile, 'JPEG') >>> converted_data = ofile.getvalue()
完全不用磁盘,把位于
data
中的 PNG 数据转成
converted_data
中的 JPEG 数据。
阿良良木·历
answered 10 years, 9 months ago