この問題は私も多く直面していましたが、imagettftext
はイメージにテキストを書き込むのにGD関数を使用するのが最も一般的ですが、問題は複雑なユニコード文字をレンダリングできないためです。我々は良いです複雑な文字を持っている。
複雑なユニコード文字を表示するには、imagick
インストール+ pango
がサーバーにインストールされている必要があります。ほとんどのホスティングプロバイダにはパンゴがインストールされていないため、アプリケーション用に専用のサーバを用意する必要があります。
Linuxディストリビューションのほとんどが付属していますpango
事前にあなたの地元のLinux上でimagick
をインストールするために管理している場合
/* complex unicode string */
$text = "වෙබ් මත ඕනෑම තැනක";
$im = new \Imagick();
$background = new \ImagickPixel('none');
$im->setBackgroundColor($background);
$im->setPointSize(30);
$im->setGravity(\Imagick::GRAVITY_EAST);
$im->newPseudoImage(300, 200, "pango:" . $text);
$im->setImageFormat("png");
$image = imagecreatefromstring($im->getImageBlob());
//just for print out to the browser
ob_start();
imagepng($image);
$base64 = base64_encode(ob_get_clean());
$url = "data:image/png;base64,$base64";
echo "<img src='$url' />";
はあなたが持つ任意の難しさを見つけた場合、私に教えてくださいmatchine
次のコードは問題なく動作するはずですので、インストールコード