全く同じスクリプトと同じIPA明朝フォントファイルを使い、サーバーだけ変えてImageTTFTextで画像にテキストを書き出した。
結果、サーバによって文字サイズやアンチエイリアスのかかり具合に違いが出た。
どうなっているんだ…、どうすりゃいいんだ…。
ローカルのXAMP、さくらのレンタルサーバライト、エックスサーバー
の3つで書きだしたGIF画像をアニメGIFにした。JPG画像やPING画像でも同じ結果になる。
GDとやらのバージョンが違うのかと思い var_dump(gd_info()); で確認したら、ローカルのXAMPとエックスサーバーは同じ 2.0.34 compatible で、それらよりも汚いさくらのレンタルサーバーはそれらより新しい 2.1.0 compatible だった。
さくらのレンタルサーバーを使おうと思って(仮)契約を先ほど済ませただけに、この結果にはちょっとショックだ。
<?php $img = imagecreate(600,600); $background_color = imagecolorallocate($img, 255,255,255); $text_color = imagecolorallocate($img, 0,0,0); for($fontsize=1;$fontsize<=20;$fontsize=$fontsize+0.5){ ImageTTFText($img, $fontsize, 0, 10, $y*1.5+5 ,$text_color, ".pam.ttf", $fontsize. ": 012345ABCDEabcdeあいうえお亜以兎絵雄"); $y = $y + $fontsize; } Imagegif ($img, "img.gif"); ImageDestroy ($img); ?> <html> <body> <img src="img.gif"> </body> </html>
整数倍の大きさで作ってから縮小したら綺麗になるのではないかと思って試した結果。さくらのレンタルサーバーで、1倍、2倍を1/2縮小、3倍を1/3縮小、4倍を1/4縮小したもの。
いま考えている案では小さい文字を使いたい。倍率を上げるほど負荷になる気がするので、2倍サイズで作って1/2に縮小するのが良さそうか。相変わらずローカル環境やエックスサーバーでは文字サイズにバラつきが出る。これは本番サーバーで現物合わせの調整をするしかないようだ。
あと、gifで作ると白が黄ばんでるのね。