ImageMagick中-depth参数失效,如何将图片转为16位深度?
用ImageMagick将8位RGB PNG转换为16位深度的正确方法
单张图片转换命令
magick SolarCells_Albedo.png -depth 16 -define png:color-type=2 sc.png
之前命令无效的原因
- 你把
-depth放在输入文件前,这是设置读取输入源的位深度,而非输出文件的位深度,必须将-depth放在输入文件之后,才能作用于输出环节。 - 第二个命令里的
-size 512x1024完全多余,输入图片的自有尺寸会直接覆盖这个参数,导致它不起作用。 - ImageMagick默认可能输出索引色模式的PNG,这种模式会自动压缩位深度,所以必须用
-define png:color-type=2强制指定为RGB真彩色模式,确保16位深度生效。
批量转换文件夹内所有PNG
如果需要批量处理当前文件夹下的所有目标图片,且覆盖原文件:
magick mogrify -format png -depth 16 -define png:color-type=2 *.png
如果要保留原文件,将转换后的文件输出到新文件夹:
mkdir -p 16bit_output magick mogrify -path ./16bit_output -format png -depth 16 -define png:color-type=2 *.png
额外说明
- 你的ImageMagick 7.1.1-Q16-HDRI版本原生支持16位处理,无需额外配置。
- 若图片带Alpha通道(需16位RGBA),将
png:color-type改为6即可。 - 关于2的幂次尺寸:若后续有不符合要求的图片,可添加
-resize "2^>"自动调整为不小于原尺寸的最小2的幂次;强制固定尺寸用-resize 512x1024!(感叹号表示强制忽略宽高比)。
内容的提问来源于stack exchange,提问作者Martin Connor
相关产品推荐
相关产品推荐

