gpt4 book ai didi

imagemagick - 如何使用 ImageMagick 获得 8 位灰度和 alpha channel 深度?

转载 作者:行者123 更新时间:2023-12-01 05:39:46 25 4
gpt4 key购买 nike

我正在尝试使用 ImageMagick 创建一个透明的 PNG。无论“转换”的咒语如何,当我对图像使用识别时,它总是说:

Depth: 8/1 bit
Channel depth:
gray: 1 bit
alpha: 1 bit

当我查看网络上的透明 PNG 时,它说:
Depth: 8 bit
gray: 8 bit
alpha: 8 bit

这似乎很重要的原因是我使用我创建的透明 PNG 作为 FFMPEG 中的水印。当我使用 ImageMagick 创建的 PNG 时,它会导致视频看起来像 50% 的灰色不透明度。但是,当我使用在网上找到的 PNG 时,它运行良好。根据识别,唯一的区别是深度。

以下是我尝试过的一些事情:
convert -size 640x480 xc:none -depth 8 test.png
convert -size 640x480 xc:transparent -depth 8 test.png

我注意到的另一件事是 Gimp 显示 ImageMagick 图像具有灰度色彩空间,即使识别说它是 RGB。我在网上找到的有效图像在 Gimp 和识别中都显示了 RGB 色彩空间。

有任何想法吗?

最佳答案

一、关于 ImageMagick 的“灰度”。

ImageMagick 实际上没有这样的色彩空间。它仅在 RGB 空间内伪造它,方法是将 R(红色)、G(绿色)和 B(蓝色) channel 中的所有值设置为相同的值。 (如果三个值不相同,则图像不再是灰度的。)

二、关于您(看似)使用 8 位 alpha channel 创建图像的失败尝试。

这是因为您没有将任何不同的“颜色”值放入透明区域——它们都是普通的(完全透明)。

试试这个转换内置 ImageMagick 的命令 logo:图片:

convert              \
logo: \
-bordercolor white \
-background black \
+polaroid \
polaroid.png

输出图像:

Polaroid effect by ImageMagick

将很高兴地显示您所需的 8 位 alpha 值:
identify -verbose polaroid.png | grep -A 4 "Channel depth:"

Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
alpha: 8-bit

或者尝试转换内置 rose:图像为半透明:
convert  rose:  -alpha set  -channel A  -fx '0.5'  semitransp-rose.png

相同的结果:Alpha channel 的 8 位深度。

要修改您的原始命令之一:
convert  -size 640x480  xc:none  -depth 8  -channel A -fx 0.5  test.png

如果您 identify -verbose在生成的图像中,您会发现 R、G 和 B channel 只有 1 位深度,而 A channel 是 8 位深度。那是因为它实际上使用了一个不同于 0 的值。 ,而其他 channel 都是 0 .

关于imagemagick - 如何使用 ImageMagick 获得 8 位灰度和 alpha channel 深度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6350813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com