ImageMagick批量调整性能 皈依\ original.jpg\ -质量85\ -色彩空间rgb\ -profile/var/tmp/sRGB.icm\ -剥落\ -profile/var/tmp/sRGB.icm\ -过滤兰索斯\ -编写mpr:17JPCONV1原件\ +删除\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“190x126!>”-写入thumbWide.jpg+delete\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“75x75!>”-写入thumbStandard.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“163x163!>”-写入hpSmall.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“1024x1019!>”-写入jumbo.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“190x189!>”-写articleInline.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“2048x2037!>”-写入superJumbo.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“592x589!>”-写入tmagArticle.jpg并删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“3000x2983!>”-写入popup.jpg+删除\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“640x640!>”-写入square640.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“3000x1688!>”-写入videoSmall.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“503x500!>”-写入slide.jpg+删除\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'151x151!>'-写入moth.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“337x225!>”-写入hpmedia.jpg并删除\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“395x264!>”-写入sfSpan.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“3000x1688!>”-写入videoLarge.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“511x288!>”-写入hpLarge.jpg+delete\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'320x320!>'-写入square320.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“600x338!>”-writearticlelog.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“3000x2000!>”-写入videoThumb.jpg+删除\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整大小'150x150!>'-写入thumbleglarge.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“533x530!>”-写blog533.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“151x151!>”-写blogsmalinline.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“362x360!>”-写入tmagSF.jpg+删除\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“190x190!>”-写入filmstrip.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“480x478!>”-写blog480.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“427x425!>”-写blog427.jpg+delete\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'50x50!>'-写blogsmollthumb.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1401+0+791”-调整大小“151x70!>”miniMoth.jpg;
我正在尝试使用一个命令从一个原始命令生成约30个作物(对每个作物使用一个命令要比使用一个命令快得多)。然而,这需要相当长的时间(约30秒)才能完成。有什么加速的建议吗?resize命令可以通过OpenCL利用GPU吗 更新:ImageMagick批量调整性能 皈依\ original.jpg\ -质量85\ -色彩空间rgb\ -profile/var/tmp/sRGB.icm\ -剥落\ -profile/var/tmp/sRGB.icm\ -过滤兰索斯\ -编写mpr:17JPCONV1原件\ +删除\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“190x126!>”-写入thumbWide.jpg+delete\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“75x75!>”-写入thumbStandard.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“163x163!>”-写入hpSmall.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“1024x1019!>”-写入jumbo.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“190x189!>”-写articleInline.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“2048x2037!>”-写入superJumbo.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“592x589!>”-写入tmagArticle.jpg并删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“3000x2983!>”-写入popup.jpg+删除\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“640x640!>”-写入square640.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“3000x1688!>”-写入videoSmall.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“503x500!>”-写入slide.jpg+删除\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'151x151!>'-写入moth.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“337x225!>”-写入hpmedia.jpg并删除\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“395x264!>”-写入sfSpan.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“3000x1688!>”-写入videoLarge.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“511x288!>”-写入hpLarge.jpg+delete\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'320x320!>'-写入square320.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1689+0+647”-调整大小“600x338!>”-writearticlelog.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2001+0+491”-调整大小“3000x2000!>”-写入videoThumb.jpg+删除\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整大小'150x150!>'-写入thumbleglarge.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“533x530!>”-写blog533.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“151x151!>”-写blogsmalinline.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“362x360!>”-写入tmagSF.jpg+删除\ mpr:17JPCONV1原件-裁剪“2981x2983+8+0”-调整大小“190x190!>”-写入filmstrip.jpg+删除\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“480x478!>”-写blog480.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x2983+0+0”-调整大小“427x425!>”-写blog427.jpg+delete\ mpr:17JPCONV1原件-裁剪'2981x2983+8+0'-调整'50x50!>'-写blogsmollthumb.jpg+delete\ mpr:17JPCONV1原件-裁剪“3000x1401+0+791”-调整大小“151x70!>”miniMoth.jpg;,imagemagick,Imagemagick,我正在尝试使用一个命令从一个原始命令生成约30个作物(对每个作物使用一个命令要比使用一个命令快得多)。然而,这需要相当长的时间(约30秒)才能完成。有什么加速的建议吗?resize命令可以通过OpenCL利用GPU吗 更新: 使用-缩略图而不是-resize可以改善情况 (感谢@A R的提示)使用libjpeg-turbo编译ImageMagick也可以将时间提高20% 您应该检查ImageMagick安装是否附带OpenCL支持: convert \ original.jpg \
- 使用-缩略图而不是-resize可以改善情况
- (感谢@A R的提示)使用libjpeg-turbo编译ImageMagick也可以将时间提高20%
convert -list configure | grep FEATURES
此命令
FEATURES HDRI OpenCL
还应提供有关支持功能的信息
如果没有,您应该注意获取最新版本的ImageMagick,该版本在中编译了OpenCL支持。或者,如果您自己从源代码构建包,请确保使用OpenCL
更新: 哦,等等。还有另一个功能可以帮助您,称为OpenMP(用于多处理) 启用OpenMP后,ImageMagick命令可以在系统的所有核心上并行执行。因此,如果您有一个四核系统,并调整图像的大小,调整大小发生在4核(甚至8,如果您有超线程) 现在,您还可以使用内置的
-bench
选项使ImageMagick为您的命令运行基准测试。例如:
convert -version
此带有-resize 500%
的命令告诉ImageMagick运行convert
命令,将内置IM徽标:
图像在每个方向上缩放500%。-bench 10
部分告诉它在循环中运行相同的命令10次,然后打印性能结果:
- 因为我没有启用OpenMP,所以我只有一个线程(
)Performance[1]:
- 它报告它运行了10次迭代(
)10i
- 速度接近每秒0.7次迭代(
)0.689ips
- 总用户平均时间为14.420秒
convert logo: -resize 500% -bench 10 logo.png
Performance[1]: 10i 0.689ips 1.000e 14.420u 0:14.510
为了启用2个并行线程,请重新运行基准测试,看看它是否真的有影响,如果有,影响有多大。我可以将限制设置为4甚至8,然后重复练习
最后,您可以尝试ImageMagick像素缓存的内部格式,称为
MPC
(Magick像素缓存)。有人说,对于大型操作,这里的性能有所提高,但我个人对此没有经验
首先将基础图片转换为MPC:
convert -limit thread 2
然后才运行:
convert input.jpeg input.mpc
看看这是否能为你节省大量的时间
最有可能的是,您甚至可以“内联”(使用特殊的mpr:
表示法)使用此MPC格式,这与您使用mpr:
格式(内存程序寄存器)将图像读入命名内存寄存器的技巧类似。但我从来没有尝试过这种技术
convert input.jpeg input.mpc
convert input.mpc [...your long-long-long list of crops...]
#!/bin/bash
counter=0
for i in tif/*.TIF;
do
y=${i%.TIF}
((counter++))
if [ -s gif$y.gif ];then
:
else
gm convert $i gif$y.gif &
fi
if [ $counter -eq 30 ];then
((counter =0))
wait
fi
done
wait