imagettftext php 関数を使用してレンダリングされたテキストを含む、Google の php appengine から画像を作成しようとしています。フォントファイル名を指定する必要があり、それは関数へのパスですが、アプリケーションをデプロイするときにスクリプトが静的ファイルとは別に保存されるため、php スクリプトから静的フォントディレクトリにアクセスする方法がわかりません。
これは、私の php スクリプトからの関連コードです。
header("Content-type: image/png");
$image = imagecreatetruecolor($imgWidth, $imgHeight);
imagealphablending($image, false);
$transparency = imagecolorallocatealpha($image, 0, 0, 0, 127);
$black = imagecolorallocatealpha($image, 0,0,0, 0);
$font = './font/Allerta-Regular.ttf';
imagefill($image, 0, 0, $transparency);
imagesavealpha($image, true);
imagealphablending($image, true);
imagettftext($image, $fontSize, $angle, 100, 100, $black, $font, "Test text");
imagepng($image);
imagedestroy($image);
ディレクトリ構造は次のようなものです:
- root
- js
- css
- font
- img
ここで、php スクリプトはルート フォルダーにあり、フォント ファイルは font フォルダーにあります。
上記のコードはローカル PC では機能しますが、サーバーに展開すると機能しません。imagettftext がフォントを見つけられず、エラー メッセージが表示されるからです。imagettftext にはローカル ファイル パスが必要なため、URL のフル パスを使用しても機能しません。
$font = '/font/Allerta-Regular.ttf' (最初のドットなし) も試しましたが、うまくいきませんでした。
「Google Cloud Storage」サービスを使用できることは知っていますが、このフォントは js ファイルからも使用されるため、それを雇ってファイルを複製したくありません。
imagettftext で使用する PHP アプリ エンジンのフォントを指定するにはどうすればよいですか?
ありがとう