需要把一个jpg格式的文件转成png,然后上传,源文件来自网络。
目前我知道的:
pythonfrom PIL import Image
with open('a.jpg', 'w') as w:
w.write(data)
orin = Image.open('a.jpg')
orin.save('a.png')
显然需要耗费多余的两次磁盘IO,有没有更好的转换方法呢?
1 回答
哔哔one
TA贡献1854条经验 获得超8个赞
你用的是 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 数据。
添加回答
举报
0/150
提交
取消