【问题标题】:Python/Django png,gif to jpgPython / Django PNG,GIF到JPG
【发布时间】:2014-05-31 09:41:29
【问题描述】:

我正在使用 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,这正是我想做的。

【问题讨论】:

  • 仅供参考,JPG 不支持任何类型的透明度。
  • 而且 GIF 不像 PNG 那样支持 alpha 透明度。
  • no satisfied solution which handles all kind of files??

标签: python django jpeg python-imaging-library pillow


【解决方案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) 中的第二张图片允许我的 alpha 通道作为背景图像的遮罩。
  • 坐标(0,0)粘贴你的 图像完美覆盖您的背景
  • bg.save("file.jpg", quality=95); quality=95 确保来自 PIL 的最高质量

【讨论】:

  • 它适用于 png 文件。当我尝试上传 gif 时,将抛出以下异常:Exception Type:ValueErrorException Value:bad transparency mask
  • 你能上传你的面具,这样我就可以自己尝试错误了吗?有关错误的更多详细信息?
  • 这是我的示例 gif:funnyjunk.com/funny_gifs/4260026/Pokemon+Gif 错误发生在 self.im.paste(im, box, mask.im)
猜你喜欢
  • 2011-08-04
  • 1970-01-01
  • 2012-12-21
  • 2011-07-16
  • 1970-01-01
  • 2012-01-24
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多