Python可以将jpg格式转为png再上传吗,pythonjpg转为png,PIL除了save()之


PIL除了save()之外还有其他可转换图片格式的API吗?
需要把一个jpg格式的文件转成png,然后上传,源文件来自网络。
目前我知道的:

pythonfrom PIL import Imagewith open('a.jpg', 'w') as w:    w.write(data)orin = Image.open('a.jpg')orin.save('a.png')

显然需要耗费多余的两次磁盘IO,有没有更好的转换方法呢?

你用的是 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 数据。

编橙之家文章,

评论关闭