Python/Django 将png、gif转为jpg
我正在使用Django 1.6.2、Python 3.3.5和Pillow 2.3.0。
在Django中,如何将png或gif格式的图片转换成jpg格式,并且输出的文件和上传的文件几乎一样呢?(透明部分变成白色)
我尝试过几种方法,比如:
import Image
im = Image.open("infile.png")
im.save("outfile.jpg")
或者
from PIL import Image
im = Image.open("file.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im,im)
bg.save("file.jpg")
但问题是,我没有找到一个满意的解决方案,能够处理gif和png(包括硬边缘和软边缘的遮罩)。
有没有什么好的建议呢?
编辑:
好的,我正在使用ImageKit,它正好可以实现我想做的事情。
1 个回答
1
使用方法:
from PIL import Image
im = Image.open("file.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im, (0,0), im)
bg.save("file.jpg", quality=95)
- 在
bg.paste(im, (0,0), im)
中传入第二张图片,可以让 im 的透明通道作为你背景图片的遮罩。 - 坐标
(0,0)
会把你的图片完美地放在背景上。 bg.save("file.jpg", quality=95)
;quality=95
确保从PIL
得到最高质量的图片。