PHP GD ライブラリで作成した画像内で Verdana フォントを使用しています。
imagettftext($image, $fontSize, 0, 70, $y, $color, $font, $username );
ほとんどの場合、imagettftext は文字列に対して非常にうまく機能します。
しかし、一部のユーザーは、名前に奇妙な文字/記号を使用しています。
そのため、名前を画像に印刷しようとすると。例えば:
このユーザーはɦɪɲɣƙƨєʌɾ
記号を使用しています。そのため、Verdana では印刷できません。
私はこれを使用しました:
$username=iconv('UTF-8', 'ASCII//TRANSLIT', $username);
出力は次のとおりです。
(現在のロケールは英語とドイツ語で異なります。したがって、現在のロケールではこれらの文字を処理できない可能性があります: ɦɪɲɣƙƨєʌɾ
)
非常に大きなブロックを書かずに、に音訳ɦ
することはできないようです。このように。h
ɲ
n
str_replace()
そこで、フォント(Verdana)がこれらの記号を表示できるかどうかを確認できるかどうか疑問に思っています。いずれかの文字を文字列内に表示できない場合は、空の文字列を
imagettftext
メソッドに渡すことができます。font 内のサポートされている文字を確認できますか? または、Verdana でサポートされている記号を含む文字マップを作成し、文字列にサポートされていない記号が含まれていないかどうかを確認しますか? (この質問
のせいで無理だと思います)または、別の解決策として、で複数のフォントを使用することは可能
imagettftext()
ですか?
たとえば、最初に Verdana を試してください。Verdana がシンボルをカバーしていない場合は、Arial sans serif などを使用します。または他の解決策はありますか?
編集:
Verdana は私のテキストでこれらの Unicode 文字をサポートしていないようです。
Verdana 対応文字: http://www.fileformat.info/info/unicode/font/verdana/grid.htm
Verdana 非対応文字: http://www.fileformat.info/info/unicode/font/verdana/missing.htm