python - 魔杖将透明背景变成黑色

标签 python grayscale wand magickwand

我正在尝试使用 Wand 使用 python 进行灰度化,但是当我这样做时

from wand.image import Image
with Image(filename='image.png') as img:
    img.type = 'grayscale'
    img.save(filename='image_gray.png')

它将透明背景变成黑色。如果我使用白色背景的它就可以了。我做错了什么。灰度也是如此

Y = 0.2126 * RED + 0.7152 * GREEN + 0.0722 * BLUE

我可以在 Wand 中哪里手动执行此操作,比如说我是否想稍微更改一下值。我查看了文档和各种论坛,但找不到任何答案,只有 Photoshop 的东西。

谢谢!

最佳答案

设置为灰度的 PNG 图像类型会删除透明层(请参阅 PNG docs )。一种选择是在设置灰度后启用 Alpha channel 。

img.alpha = True
# or
img.background_color = Color('transparent')

这可能不起作用,具体取决于您使用的版本。

另一种选择

使用 Image.modulate 更改颜色饱和度.

img.modulate(saturation=0.0)

另一种选择

改变色彩空间。

img.colorspace = 'gray'
# or
img.colorspace = 'rec709luma'
# or
img.colorspace = 'rec601luma'

另一种选择

如果您的版本有Image.fx。以下内容可以工作

with img.fx('lightness') as gray_copy:
   ....

关于python - 魔杖将透明背景变成黑色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753580/

相关文章:

python - 更新 Combo 的默认值

python - 如何从 Python 日志记录模块写入 Kafka?

java - Java 抗锯齿灰度图像的洪水填充算法

python - Wand python 使用 GIF 获取像素颜色

Python 绑定(bind)到 ImageMagick

相当于 ImageMagick "convert -append"的魔杖

python - 如果函数抛出异常则不返回是不好的做法吗?

python - 按键值pyspark分组

php - 如何合并两个 PNG(一个具有透明度)?

matlab - 在轴上显示透明图像 (MATLAB)