ホームページ > バックエンド開発 > PHPチュートリアル > 求助:警告: imagettfbbox() [function.imagettfbbox]: 無効なフォント ファイル名です

求助:警告: imagettfbbox() [function.imagettfbbox]: 無効なフォント ファイル名です

WBOY
リリース: 2016-06-23 14:25:12
オリジナル
2120 人が閲覧しました

//適切な変数データが​​あることを確認します
//変数はボタンテキストと色です

$button_text=$_REQUEST['button_text'];
$color=$_REQUEST['color'];

if((empty($button_text)||empty($color))||(!($color=='red'
||$color=='blue'||$color=='green') ))
{
echo 「画像フォームを作成できませんでした。正しく記入されていませんでした」;
終了します。
}
//適切な背景の画像を作成し、サイズを確認します
$im=imagecreatefrompng($color.'-button.png');
if(!$im)
{
echo 'イメージを作成できませんでした';
終了します。
}
$width_image=imagesx($im);
$height_image=imagesy($im);

//画像には、画像の端から 18 ピクセルの余白が必要です
$width_image_wo_margins=$width_image-(2*18);
$height_image_wo_margins=$height-(2*18);
//フォント サイズが適合するかどうかを調整し、適合するまで小さくします
//ボタンに適切に適合する最大のサイズから始めます
$font_size=3;
//フォントが存在する場所を GD2 に伝える必要があります
putenv('GDFONTFATH=C:windowsfonts');
$fontname='Arial';

してください
{
$font_size--;
//そのフォント サイズでのテキストのサイズを調べます
$bbox =imagettfbbox($font_size,0,$fontname,$button_text);

$right_text=$bbox[2];//右座標
$left_text=$bbox[0];
$width_text=$right_text-$left_text; //幅はどのくらいですか?
$height_text=abs($bbox[7]-$bbox[1]);//身長はどのくらいですか?
}
while($font_size>8&&($height_text>$height_image_wo_margins||
$width_text>$width_image_wo_margins)
);

if($height_text>$height_image_wo_margins||
$width_text>$width_image_wo_margins)
{
//読み取り可能なフォント サイズがボタンに適合しません
echo '指定されたテキストが表示されますボタンにフィットしません。
';
}
else
{
//適合するフォントサイズが見つかりました
//どこに配置するかを検討します
$text_x=$width_image/2.0-$width_text/2/0;
$text_y=$height_image/2.0-$height_text/2.0;

if($left_text $text_x+=abs($left_text);
$above_line_text=abs($bbox[7]);
$text_y+=$above_line_text;

$text_y-=2;
$white=imagecolorallocate($im,255,255,255);
imagettftext($im,$font_size,0,$text_x,$text_y,$white,$fontname,
$button_text);
header('content-type:image/png');
imagepng($im);
}
imagedestroy($im);
?>

警告: imagettfbbox() [function.imagettfbbox]: E:AppServwwwmake_button.php 行 38 のフォント ファイル名が無効です


回复讨论(解决方案)

有那个字体一つの文字体を换、または文字体ファイルを相に移動

私は putenv('GDFONTFATH=C:windowsfonts');

変更putenv('GDFONTFATH=C:WindowsFonts');
报错: 警告: imagettfbbox() [function.imagettfbbox]: E:AppServwwwmake_button.php の 38 行目でフォントが見つからない/開くことができませんでした


ただし文件夹中の确有 Arial字体文件

请大侠帮助! ~~~

申し訳ありません
エラーは常に Warning: imagettfbbox() [function.imagettfbbox]: Invalid font filename in E:AppServwwwmake_button.php on line 38 です

これはフォント変数の問題です。
putenv('GDFONTFATH=C:windowsfonts');
$fontname='Arial'; を
$fontname = 'c:/windows/fonts/arial.ttf' に直接変更するだけで、大文字と小文字は区別されません。

私もこのような状況に遭遇し、#4 と同じことをしましたが、やはり発生しました、ファイル名が見つかりませんでした

フォントパスにバックスラッシュを記述する方法、まだ /、私はいくつかのタイプを試しましたが、どれも機能せず、フォントはシステムに存在します

警告: imagettfbbox() [function.imagettfbbox]: D:xampphtdocstestclasspImage.class.php の 211 行目のフォント ファイル名が無効です


警告: imagettftext() [function .imagettftext]: D:xampphtdocstestclasspDraw.class.php の 1023 行目のフォント ファイル名が無効です

呼び出されたクラスで問題が発生しました。どう思いますか?

4階の解決策は解決しました、ありがとうございます

4階の正解は3KUです!

4階法は効果あります!

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート