我正在尝试在 Ubuntu 12.04 服务器上使用 ImageMagick 来动态创建简单的名片。这是通过 php 页面完成的。我尝试安装 MagickWand,但它并没有真正起作用,所以我现在使用 ImageMagick 语法并通过 PHP 函数执行它exec()
。
我取得了不错的进展,基本完成了或多或少,输出图像看起来还不错,现在正在微调,设置正确的位置,更改字体和大小等。
我们的图形人员希望文本是带有粗体标题的 Arial,所以我在服务器上安装了 msttcorefonts。从那时起,输出图像中的文本是斜体的,它忽略了我使用的任何字体。
奇怪的是:如果我将命令回显到页面,将其复制并粘贴到 ubuntu 控制台中,在那里创建的图像使用正确的字体,这正是我想要的。
因此,似乎当我通过控制台执行命令时,一切都很好,但是当我通过 PHP 在 PHP 中执行它时exec()
,ImageMagick 似乎无法识别字体。有谁知道为什么?另外,如果它不识别字体,为什么它默认为斜体,或者,为什么在安装字体后默认值发生了变化?
这是我目前正在测试的命令(更改了名称和联系信息):
convert \
-size 1051x697 \
xc:none \
-density 300 \
-fill white \
draw "rectangle 0,0 1051,697" \
-fill black \
-font Arial-Negreta \
-pointsize 9 \
-draw "text 140,175 'Hotel Example'" \
-font Arial-Normal \
-pointsize 6 \
-draw "text 140,220 'Example Street 8'" \
-draw "text 140,240 '12345 Exampletown'" \
-draw "text 140,280 'Telefon: 123 45 67 89 0'" \
-draw "text 140,300 'Fax: 234 56 78 90'" \
-draw "text 140,340 'http://www.example.de'" \
-draw "text 140,360 'hotel-example@example.de'" \
-stroke none -fill orange -draw "rectangle 1,32 1050,75" \
-fill grey \
-draw "rectangle 1,75 1050,100" \
-fill orange \
-draw "rectangle 1,626 1050,665" \
test_front.png
编辑:
我刚刚注意到从 Ubunut 控制台运行命令也只能在我的主目录中运行,而不是在我的 /var/www 目录中。正如 APiK 指出的那样,这可能是用户的事情。