我使用ImageMagick convert
工具添加了几个PNG图像。
convert -set colorspace RGB `ls *.png` -append outout.png
这是输入文件的颜色参数:
$ identify input1.png
input1.png PNG 9600x1800 9600x7200+0+0 8-bit sRGB 355KB 0.000u 0:00.000
存在4个输入文件,参数相同。
输出文件包含以下颜色参数:
$ identify output.png
output.png PNG 9600x7200 9600x28800+0+0 8-bit sRGB 2.461MB 0.000u 0:00.009
这是我使用的ImageMagick版本:
$ convert -version
Version: ImageMagick 6.7.7-10 2014-04-09 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
如何计算convert ... -append
操作的主内存消耗?
答案 0 :(得分:3)
您似乎使用的是ImageMagick的Q16版本,此版本的ImageMagick每像素通道使用16位(Q8版本每像素使用8位)。在ImageMagick 6中,每个像素每个像素有4-5个通道(红色,绿色,蓝色,不透明度,索引),这种行为将在ImageMagick 7(http://www.imagemagick.org/script/porting.php#channels)中发生变化。由于您的输入和输出都是png文件,因此每个像素使用4个通道,这总计为16 * 4 =每像素64位。因为您的输入图像是9600x1800并且您将其中4个组合成单个图像,所以需要总共64 * 9600 * 1800 * 4 = 4423680000位/ 552.96 MB来分配内存中的图像。但是因为创建输出图像时会创建每个图像的副本,所以需要两倍的内存:1.1 GB。