//適切な変数データがあることを確認します
//変数はボタンテキストと色です
$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階法は効果あります!