使用ImageMagick和PHP使用自定义字体绘制文本

| 我想使用自定义字体将文本动态呈现到图像,最好选择直接输出或保存到文件的选项。并根据字体/大小组合自动设置图像大小。 我已经可以使用GD做到这一点,但是它不能处理字符相互重叠的字体。 所以现在我正在寻找ImageMagick。我在文档中找到了一个可以满足我要求的示例。 php_magick有可能吗?尤其是其中没有定义图像大小的部分:)如果没有定义,我可以让命令行magick输出原始图像,以便可以使用PHP将其直接传递给客户端吗? 谢谢! 真正的问题可能是:如何使用php_magick将下面的IM命令转换为PHP代码?
convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony
    
已邀请:
您应该能够使用
Imagick
类的
annotateImage
函数来复制该功能。 这是该文档的直接复制粘贴:
<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel( \'gray\' );

/* New image */
$image->newImage(800, 75, $pixel);

/* Black text */
$draw->setFillColor(\'black\');

/* Font properties */
$draw->setFont(\'Bookman-DemiItalic\');
$draw->setFontSize( 30 );

/* Create text */
$image->annotateImage($draw, 10, 45, 0, 
    \'The quick brown fox jumps over the lazy dog\');

/* Give image a format */
$image->setImageFormat(\'png\');

/* Output the image with headers */
header(\'Content-type: image/png\');
echo $image;
    
决定跳过API并改用命令行界面。
convert -background lightblue -fill blue -font Arial -pointsize 72 label:Anthony png:-
这将返回原始PNG数据,然后我们可以将其输出到浏览器。将“ 5”替换为文件名以保存到文件中。 如果您在此处将用户输入用作参数,请不要忘记使用
escapeshellarg
。     

要回复问题请先登录注册