如何使用 ImageMagick 获得 8 位灰度和 Alpha 通道深度?
我正在尝试使用 ImageMagick 创建透明 PNG。无论“转换”的咒语如何,当我对图像使用识别时,它总是说:
Depth: 8/1 bit
Channel depth:
gray: 1 bit
alpha: 1 bit
当我查看在网络上找到的透明 PNG 时,它说:
Depth: 8 bit
gray: 8 bit
alpha: 8 bit
这似乎很重要的原因是我正在使用透明我在 FFMPEG 中创建 PNG 作为水印。当我使用 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 和 recognize 中都显示了 RGB 色彩空间。
有什么想法吗?
I'm trying to create a transparent PNG with ImageMagick. No matter the incantations to "convert", when I use identify against the image, it always says:
Depth: 8/1 bit
Channel depth:
gray: 1 bit
alpha: 1 bit
When I look at a transparent PNG found on the web, it says:
Depth: 8 bit
gray: 8 bit
alpha: 8 bit
The reason this seems to matter is that I'm using the transparent PNGs I create as a watermark within FFMPEG. When I use the PNG that ImageMagick creates, it causes the video to appear to have like a 50% gray opacity. However, when I use the PNG I found on the web, it works fine. According to identify, the only difference is the depth.
Here are some of the things I've tried:
convert -size 640x480 xc:none -depth 8 test.png
convert -size 640x480 xc:transparent -depth 8 test.png
The other thing I noticed is that Gimp shows the ImageMagick image to have a Colorspace of Grayscale, even though identify says it's RGB. The image that I found on the web, that works, shows a Colorspace of RGB in both Gimp and identify.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先,关于 ImageMagick 的“灰度”。
ImageMagick 实际上没有这样的色彩空间。它仅在 RGB 空间内伪造它,方法是将 R(红色)、G(绿色)和 B(蓝色)通道中的所有值设置为相同的值。 (如果这三个值不相同,则图像不再是灰度图像。)
第二,关于您(看似)不成功创建具有 8 位 Alpha 通道的图像的尝试。
这是因为您没有将任何不同的“颜色”值放入透明区域 - 它们都是普通的(完全透明)。
尝试使用此命令转换内置 ImageMagick
logo:
图片:输出图像:
将很高兴地显示您所需的 8 位 alpha 值:
或者尝试将内置
rose:
图像转换为半透明图像:相同的结果:alpha 通道的 8 位深度。
要修改原始命令之一:
如果您
identify -verbose
生成的图像,您会发现 R、G 和 B 通道仅为 1 位深度,而 A 通道为 8 位深度少量。这是因为它实际上使用了与0
不同的值,而其他通道都是0
。First, about ImageMagick's 'grayscale'.
ImageMagick doesn't actually have such a colorspace. It only fakes it within RGB space, by setting all values in the R (red), G (green) and B (blue) channels to the same values. (If the three values are not the same, the image is no longer grayscale.)
Second, about your (seemingly) unsuccessful attempts to create images with 8-bit alpha channel.
This is caused by you not putting any different 'color' values into your transparent areas -- they are all plain (fully transparent).
Try this command which converts the built-in ImageMagick
logo:
picture:The output image:
will happily show your required 8-bit alpha values:
Or try to convert the built-in
rose:
image to a semi-transparent one:Same result: 8-bit depth for alpha channel.
To modify one of your original commands:
If you
identify -verbose
the resulting image, you'll find the R, G and B channels to be only 1-bit depth, while the A channel is 8-bit. That's because it's actually using a value different from0
, while the other channels are all0
.