相关疑难解决方法(0)

PIL不能保存透明度

from PIL import Image

img = Image.open('1.png')
img.save('2.png')
Run Code Online (Sandbox Code Playgroud)

第一张图片有透明背景,但是当我保存它时,透明度消失了(背景为白色)

我究竟做错了什么?

python png python-imaging-library

10
推荐指数
2
解决办法
9836
查看次数

使用PIL保持透明度的同时着色图像?

好的,情况如下:

我想使用Python Image Library来"主题化"这样的图像:

主题颜色: 色板显示色彩 "#33B5E5"

在: http://mupload.nl/img/olpiyj9is.png OUT: http://mupload.nl/img/fiaoq6gk5.png

我使用ImageMagick的命令得到了结果:

convert image.png -colorspace gray image.png
mogrify -fill "#33b5e5" -tint 100 image.png
Run Code Online (Sandbox Code Playgroud) 说明:


图像首先转换为黑白,然后以主题为主.

我想用Python Image Library得到相同的结果.但似乎我在使用它时遇到了一些问题,因为:

  1. 无法处理透明度
  2. 背景(主图像的透明度)也是主题..

我正在尝试使用此脚本:

import Image
import ImageEnhance

def image_overlay(src, color="#FFFFFF", alpha=0.5):
    overlay = Image.new(src.mode, src.size, color)
    bw_src = ImageEnhance.Color(src).enhance(0.0)
    return Image.blend(bw_src, overlay, alpha)

img = Image.open("image.png")
image_overlay(img, "#33b5e5", 0.5)
Run Code Online (Sandbox Code Playgroud)

您可以看到我没有先将其转换为灰度,因为这也不适用于透明度.

很抱歉在一个问题上发布了这么多问题,但我无法做任何其他事情:$

希望大家都明白.

python transparency colorize image python-imaging-library

5
推荐指数
2
解决办法
6150
查看次数