我想让ImageMagick为我做点什么,我遇到了一些问题。首先,我不理解测量单位,因此传递到ImageMagick,因此我的脚本不能产生我需要的东西。其次,我这样做的方式效率极低。运行此脚本需要很长时间(您在下面看到的脚本会从我正在运行的内容中稍微减少)。
所以我正在做的事情......我有很多带有图标的svg文件。我希望为每个文件生成一个页面。生成的页面将包含平铺在整个页面上的图标,侧面有边距。我正在寻找1/2英寸的瓷砖,页面周围有1/2边距,需要美国字母(8 1/2 x 11英寸)。
在阅读了大量文档后,我就想到了这一点。
colors=(red blue purple yellow green black)
mkdir -p generated/icons/
for color in ${colors[@]}; do
images=`printf "source/icons/${color}.svg%.0s " {1..300}`
montage $images -tile 15x20 -page Letter+1+1 -units PixelsPerInch -density 2550x3300 \
generated/icons/${color}.pdf
done
因此,对于我的每个文件,我都运行蒙太奇。我使用printf重复图像文件名300次。然后我将这个15x20次平铺。 15x20来自8.5减1英寸边距= 7.5 * 2 = 15,同样(11-1)* 2 = 20. 300幅图像来自15 * 20。然后我说我希望这个字母页偏移1x1。 (这是我在边缘的尝试)我说我说的是每英寸像素(但没有一个单位似乎匹配)。我通过密度命令将dpi设置为300,其中8.5 * 300 = 2550和11 * 300 = 3300。
我一直在玩弄其他设置(几何等),但这些都不起作用。而且单位似乎也没有意义......现在我的结果pdf是一个正方形......
如何制作平铺页面?还有一种方法让我更有效地做到这一点吗?到目前为止我所做的很慢。
编辑:
更多信息:
i:montage --version
Version: ImageMagick 6.8.8-10 Q16 x86_64 2015-03-10 http://www.imagemagick.org
注意边距不对,方形不是字母页面,也是平铺的方式