2016-11-15 2 views
0

さまざまな言語/スクリプトで複雑なフォント(発音記号、結合されたグリフ、右から左のテキスト)を表示するには、出力はイメージ(Webページではありません)で、理想的にはPHPを使用する必要があります。 PHP、Imagick、GD用の一般的なグラフィックスライブラリは、複雑なフォントをサポートしていないので、Freetypeのバージョンがサポートされていないので、私は信じています。PHPの複雑なフォント/スクリプトをレンダリングするには?

私は可能なサポートでカスタムビルドPHPを調べましたが、ひどく複雑で厄介です。

これは簡単な解決方法ですか?

おかげ

答えて

1

この問題は私も多く直面していましたが、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次のコードは問題なく動作するはずですので、インストールコード

0

私がコメントすることはできませんが、それは、Unicode(私の知る限り、私はそれだと思う)である場合は、文字マップを使用し、PHPコードから、それをエコー可能性があります。ページをUnicodeの特定のバリエーションにするには、おそらく<meta>を挿入する必要があります(私はあまりにも多くのUnicodeについてはわかりません)。

関連する問題