2

我们有一个图像处理微服务,它创建了带有文本的丰富图像,我们正在向我们的网站添加阿拉伯语区域设置在将一些内容翻译成阿拉伯语时,我们的翻译告诉我们生成的图像中的文本无法正确呈现在阿拉伯语中 - 它们没有连字出现,因此每个字符都是分开的。

我们目前在 PHP 中使用 ImageMagick (6.8.9-9),文本生成使用 ImagickDraw->annotateImage,在我们遇到连字问题之前效果很好。

我用谷歌搜索了一下,发现“pango”可以解决这个问题,还允许某种“html”语法为一个文本行定义多个设置,这很酷。问题是我没有找到使用自定义字体文件的方法

这是代码:

$img = new \Imagick;
$img->newImage($width, $height, new ImagickPixel('transparent'));
$img->setBackgroundColor(new ImagickPixel('transparent'));
$img->setFont($fontFile); // didn't work
$img->setPointSize($fontSize);
$img->setOption("font", $fontFile); // didn't work
$img->newPseudoImage($width, $height, "pango:<span font='".$fontName."' foreground='".$textColor."'>".$text."</span>"); // font='".$fontName."' - also didn't work

我还尝试在 ubuntu OS 中安装字体并仅使用字体名称,但这也不起作用,以及组合上述所有选项或其中一些选项。

我发现了这个问题: PHP Imagick don't use custom font > convert does。但他说他使用“caption”而不是 pango——它没有提供很酷的“html”语法,也没有解决阿拉伯语问题。

请-如果您知道任何解决方案,我将永远爱您!

谢谢。

4

0 回答 0