[PHP-users 11776] WinのGDでの日本語表示

Masashi INOUE php-users@php.gr.jp
Tue, 26 Nov 2002 10:23:01 +0900


井上と申します。

PHP-users5713、PHP-users5717を参考にして、WindowsでGDを用いた日本語表示を
試みました。

<?
$im = imagecreate (100,100);
$black = imagecolorallocate ($im,0,0,0);
$red = imagecolorallocate ($im,255,0,0);
$white = imagecolorallocate ($im,255,255,255);
imageline ($im,0,0,100,100,$red);

$font = "c:\WINNT\fonts¥msgothic.ttc";
$str = "日本語です。";
$str = mb_convert_encoding($str, "UTF-8", "SJIS");
imagettftext($im,12,0,20,30,$white,$font,$str);
header("Content-type: image/png");
header("Cache-control: no-cache");
imagepng($im);
imagedestroy($im);
?>

$fontを上記のようにした場合($font="c:/WINNT/Fonts/msgothic.ttc"ともしてみま
した)、以下のようなエラーメッセージが表示されます。
フォントファイルを見つけてくれません。

Warning: Could not find/open font in c:\apache\apache\htdocs\japanese.php on
line 11
Warning: Cannot add header information - headers already sent by (output
started at c:\apache\apache\htdocs\japanese.php:11) in
c:\apache\apache\htdocs\japanese.php on line 12
Warning: Cannot add header information - headers already sent by (output
started at c:\apache\apache\htdocs\japanese.php:11) in
c:\apache\apache\htdocs\japanese.php on line 13


$font = "./msgothic.ttc";
と変えて、msgothic.ttcファイルをphp.exeと同じフォルダ、又はhtdocsと同じフォ
ルダに置いてみても同様なエラーが出ます。

質問ですが、
$font = "c:\WINNT\fonts¥msgothic.ttc"; という書き方は間違っているのでしょ
うか?
$font = "./msgothic.ttc";とした場合、msgothic.ttcファイルはどこに置けばいい
のでしょうか?

環境はWin2000Professional,PHP4.2.3,Apache1.3.27です。