我正在尝试让ImageMagick为我执行一些操作,但遇到了一些问题。首先,我不理解传递给ImageMagick的度量单位等内容,因此我的脚本无法生成所需的内容。其次,我所采用的方法效率极低。运行这个脚本需要很长时间(下面看到的脚本是从我运行的脚本中稍微削减的)。
那么我在做什么呢……我有许多包含图标的svg文件。我想为每个文件生成一个页面。生成的页面将包含平铺在整个页面上并带有边距的图标。我正在寻找1/2英寸瓷砖,页面周围有1/2英寸的边距,页面大小需要是美国信纸(8 1/2 x 11英寸)。
阅读了很多文档后,我得出了以下结论。
对于我的每个文件,我都运行montage命令。我使用printf将图像文件名重复300次。然后我将其15x20平铺。 15x20来自8.5减去1英寸的页边距= 7.5 * 2 = 15,同样(11-1)* 2 = 20。300个图像来自15 * 20。然后我说我想要在一页信纸上偏移1x1。 (这是我尝试设置边距的方式)我说我以每英寸像素为单位(但没有一个单位似乎匹配)。我通过density命令将dpi设置为300,其中8.5 * 300 = 2550,11 * 300 = 3300。
我一直在玩其他设置(geometry等),但这些都不起作用。而且单位似乎也没有意义...现在我的结果pdf是一个正方形等等...
我如何制作这样的平铺页面?还有没有更有效的方法可以完成这项任务?到目前为止,我的速度非常慢。
编辑:
更多信息: i:montage --version 版本:ImageMagick 6.8.8-10 Q16 x86_64 2015-03-10 http://www.imagemagick.org
那么我在做什么呢……我有许多包含图标的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
对于我的每个文件,我都运行montage命令。我使用printf将图像文件名重复300次。然后我将其15x20平铺。 15x20来自8.5减去1英寸的页边距= 7.5 * 2 = 15,同样(11-1)* 2 = 20。300个图像来自15 * 20。然后我说我想要在一页信纸上偏移1x1。 (这是我尝试设置边距的方式)我说我以每英寸像素为单位(但没有一个单位似乎匹配)。我通过density命令将dpi设置为300,其中8.5 * 300 = 2550,11 * 300 = 3300。
我一直在玩其他设置(geometry等),但这些都不起作用。而且单位似乎也没有意义...现在我的结果pdf是一个正方形等等...
我如何制作这样的平铺页面?还有没有更有效的方法可以完成这项任务?到目前为止,我的速度非常慢。
编辑:
更多信息: i:montage --version 版本:ImageMagick 6.8.8-10 Q16 x86_64 2015-03-10 http://www.imagemagick.org
请注意,边距不正确,是正方形而不是信纸大小,平铺也有倾斜