ImageMagick 不转换 PNG 位深度

标签 image imagemagick png

我有以下用于向图像添加透明颜色的批处理脚本,它工作得很好

for /f %%f in ('dir /b .') do convert %%f -transparent white tra/%%f

但是它会自动将图像的位深度转换为 8 bpp 或更少(如果适用)。我不想那样。尝试了“-depth 32”和“-define png:bit-depth=value=32”但没有成功,imagemagick 仍然将图像转换为较低的位深度。 有什么帮助吗?

最佳答案

PNG 中的“位深度”是指每个样本的位数,而不是每个像素的位数。所以“-depth 32”意味着 96 位 RGB 或 128 位 RGBA,但你必须写入支持如此大深度的图像格式(不是 PNG,它仅支持最多 16 位/样本)。

你可以使用

convert input_file -transparent white png32:output.png

获得 32 位 RGBA 像素(每个样本 8 位),如果这是您需要的话。

关于ImageMagick 不转换 PNG 位深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21732953/

相关文章:

java - 滑动拼图,开关图标

html - Angular 4+ 背景 css 引用 URL 图片路径

java - 如何在 Java 中将 TIFF 转换为 JPEG/PNG

linux - Imagemagick - 用黑色替换透明像素

png - 如何将 "Cache-Control: public" header 添加到 png 文件?

html - mxGraph 导出图像损失 css

c++ - Dev C,math.h 问题

batch-file - 批量将 png 转换为 jpg 并将图像输出到新文件夹 imagemagick

animation - 制作具有特定帧尺寸的动画时出现 FFMPEG 错误

c - 如何从 PNG 文件中读取任意 block ?