我使用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操作的主内存消耗?

===============>>#1 票数:4 已采纳

似乎您使用的是ImageMagick的Q16版本,而此版本的ImageMagick每个像素通道使用16位(Q8版本每个像素使用8位)。 在ImageMagick 6中,每个像素每个像素有4-5个通道(红色,绿色,蓝色,不透明度,索引),这种现象将在ImageMagick 7中有所改变( http://www.imagemagick.org/script/porting.php#渠道 )。 由于您的输入和输出都是png文件,因此每个像素使用4个通道,因此总计为16 * 4 =每个像素64位。 因为您输入的图像为9600x1800,并且要将其中的4个合并为一个图像,所以总共需要64 * 9600 * 1800 * 4 = 4423680000位/ 552.96 MB才能在内存中分配图像。 但是,由于在创建输出图像时会创建每个图像的副本,因此您将需要两倍的内存量:1.1 GB。

  ask by Neverland translate from so

未解决问题?本站智能推荐: