ImageMagick - 在两个不同的服务器上转换不同的结果

时间:2018-02-12 20:18:28

标签: imagemagick imagemagick-convert

我正在使用以下命令生成优惠券图片。在我的开发环境中,我正在使用Ubuntu Server,在生产中我正在使用Centos 7.

convert 
-font /some-path/Gotham-Ultra.ttf 
-gravity center 
-geometry +0-0 
-background none 
-gravity south 
-fill #FC3B45 
-size 330x90 
caption:VIERNES 
-font Helvetica-Bold 
-gravity north 
-background none 
-pointsize 25 
-fill #671646 
-size 330x 
caption:–––––––––––––––––––– 
-font /some-path/Gotham-Ultra.ttf 
-gravity center 
-background none 
-fill #671646 
-size 330x210 
+pointsize 
caption:4 EMPANADAS 2 PORCIONES DE ENSALADAS 2 REFRESCOS DE 355ML POR $195 
-font Helvetica-Bold 
-gravity north 
-background none 
-pointsize 25 
-fill #671646 
-size 330x 
caption:–––––––––––––––––––– 
-append /some-path/canvas/yellow.png 
+swap 
-gravity center 
-composite /some-path/photo.jpg 
-crop 450x480+0+0 
+swap 
-append 
/tmp/coupon_image20180212-7979-p52o3f.jpg

所以,我希望标题会根据给定的空间自动调整字体大小:http://www.imagemagick.org/Usage/text/#caption_bestfit

这是我在prod env中的输出:

Centos 7(制作)

enter image description here

我期待以下内容:

Ubuntu Server(Dev)

enter image description here

现在唯一的区别是ImageMagick版本:

PROD:

Version: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP

开发

Version: ImageMagick 6.7.7-10 2016-06-01 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP

你推荐什么人?我应该匹配版本吗? (降级生产) 还有其他选择吗?

1 个答案:

答案 0 :(得分:1)

您的代码存在上述问题。在Unix上,您需要行尾\。你已经列出了photo.jpg,但提供了img.jpg。你最后使用了-append,但它应该是+ append。在Unix上,您必须提供有关标签文本和十六进制颜色的引号。因此,您的代码的正确列表如下所示。根据需要更改文件的路径和名称以及字体路径。

convert \
-font /Library/fonts/Gotham-Ultra.ttf \
-gravity center \
-geometry +0-0 \
-background none \
-gravity south \
-fill "#FC3B45" \
-size 330x90 \
caption:VIERNES \
-font /Library/fonts/Helvetica-Bold.ttf \
-gravity north \
-background none \
-pointsize 25 \
-fill "#671646" \
-size 330x \
caption:"––––––––––––––––––––" \
-font /Library/fonts/Gotham-Ultra.ttf \
-gravity center \
-background none \
-fill "#671646" \
-size 330x210 \
+pointsize \
caption:"4 EMPANADAS 2 PORCIONES DE ENSALADAS 2 REFRESCOS DE 355ML POR $195" \
-font /Library/fonts/Helvetica-Bold.ttf \
-gravity north \
-background none \
-pointsize 25 \
-fill "#671646" \
-size 330x \
caption:"––––––––––––––––––––" \
-append \
yellow.png \
+swap \
-gravity center \
-composite \
photo.jpg \
-crop 450x480+0+0 \
+repage \
+swap \
+append \
coupon_image20180212-7979-p52o3f.jpg

我将图像放在与运行命令行相同的目录位置。我还在作物后添加了+ repage。

然而,IM 6.7.8.9是错误的。我可以为该版本重现您的不良结果。我得到了IM 6.9.9.34 Q16 MacOS Sierra,当前版本以及IM 6.7.7.10和IM 6.8.6.8(我使用的下一个版本)的正确结果。事实证明,IM 6.7.8.9在很多方面都是错误的。在我看来,对于Linux发行版来说,这是一个糟糕的选择。如果可能的话,你应该考虑升级。