Python/Django 将png、gif转为jpg

1 投票
1 回答
3724 浏览
提问于 2025-04-18 02:58

我正在使用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 得到最高质量的图片。

撰写回答