相关疑难解决方法(0)

使用PIL将RGBA PNG转换为RGB

我正在使用PIL将使用Django上传的透明PNG图像转换为JPG文件.输出看起来很糟糕.

源文件

透明的源文件

Image.open(object.logo.path).save('/tmp/output.jpg', 'JPEG')
Run Code Online (Sandbox Code Playgroud)

要么

Image.open(object.logo.path).convert('RGB').save('/tmp/output.png')
Run Code Online (Sandbox Code Playgroud)

结果

两种方式,生成的图像如下所示:

结果文件

有没有办法来解决这个问题?我想要有透明背景的白色背景.


感谢很棒的答案,我想出了以下函数集合:

import Image
import numpy as np


def alpha_to_color(image, color=(255, 255, 255)):
    """Set all fully transparent pixels of an RGBA image to the specified color.
    This is a very simple solution that might leave over some ugly edges, due
    to semi-transparent areas. You should use alpha_composite_with color instead.

    Source: http://stackoverflow.com/a/9166671/284318

    Keyword Arguments:
    image -- PIL RGBA Image object
    color -- Tuple r, g, b (default 255, 255, 255)

    """ …
Run Code Online (Sandbox Code Playgroud)

python png jpeg python-imaging-library rgba

85
推荐指数
3
解决办法
10万
查看次数

在python中使用Pillow将png转换为jpeg

我正在尝试使用枕头将png转换为jpeg.我试过几次没有成功.这两个似乎适用于像这样的小png图像.

在此输入图像描述

第一个代码:

from PIL import Image
import os, sys

im = Image.open("Ba_b_do8mag_c6_big.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im,im)
bg.save("colors.jpg")
Run Code Online (Sandbox Code Playgroud)

第二个代码:

image = Image.open('Ba_b_do8mag_c6_big.png')
bg = Image.new('RGBA',image.size,(255,255,255))
bg.paste(image,(0,0),image)
bg.save("test.jpg", quality=95)
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试转换像这样的更大的图像

我越来越

Traceback(最近一次调用最后一次):

  文件"png_converter.py",第14行,in 

    bg.paste(image,(0,0),image)文件"/usr/lib/python2.7/dist-packages/PIL/Image.py",第1328行,粘贴

    self.im.paste(im,box,mask.im)ValueError:错误的透明度掩码

我究竟做错了什么?

python image python-imaging-library python-3.x

38
推荐指数
3
解决办法
6万
查看次数

使用PIL从任何图像中删除透明度/ alpha

如何用指定的背景颜色替换任何图像(png,jpg,rgb,rbga)的alpha通道?它还必须适用于没有Alpha通道的图像.

python alphablending python-imaging-library pillow

9
推荐指数
2
解决办法
8520
查看次数

当图像颜色为黑色时,如何使用 Pillow 将 PNG 转换为 JPEG?

我查看了以下链接以了解如何转换PNGJPG

转换按预期工作,但是当图像颜色本身不是黑色时!我有以下图片: 笔编辑

代码是:

im.convert('RGB').save('test.jpg', 'JPEG')
Run Code Online (Sandbox Code Playgroud)

它使整个画面变黑。我应该如何以正确的格式和颜色转换这个 PNG?颜色可以是从黑色到白色的任何颜色。

python png jpeg file-conversion pillow

3
推荐指数
1
解决办法
2190
查看次数