押入れ起業

ガレージベンチャー、ならぬ。もっぱらPHPプログラミングとアフィリエイトの研究をしています。

PHP

ImageTTFTextで同じフォントを使ってもサーバによって文字サイズやアンチエイリアスが違う…

投稿日:2015-03-20 更新日:

全く同じスクリプトと同じIPA明朝フォントファイルを使い、サーバーだけ変えてImageTTFTextで画像にテキストを書き出した。

結果、サーバによって文字サイズやアンチエイリアスのかかり具合に違いが出た。

どうなっているんだ…、どうすりゃいいんだ…。

ローカルのXAMP、さくらのレンタルサーバライト、エックスサーバーの3つで書きだしたGIF画像をアニメGIFにした。JPG画像やPING画像でも同じ結果になる。

GDとやらのバージョンが違うのかと思い var_dump(gd_info()); で確認したら、ローカルのXAMPとエックスサーバーは同じ 2.0.34 compatible で、それらよりも汚いさくらのレンタルサーバーはそれらより新しい 2.1.0 compatible だった。

ImageTTFText

さくらのレンタルサーバーを使おうと思って(仮)契約を先ほど済ませただけに、この結果にはちょっとショックだ。

<?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で作ると白が黄ばんでるのね。

ImageTTFText2

PC

PC

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

PHP

MagpieRSSの使い方を自分のためにメモ

今更だけど、MagpieRSSの使い方を再確認。 Magpie RSS – PHP RSS Parser MagpieRSS provides an XML-based (expat) R …

piwik

Piwikの手動アップデート

少し前からPiwikのアップデートが来ていたのだけれど、いつもどおり自動アップデートをしようとするとエラーが出たので更にアップデートが来るかもと思い放置していた。 curl_exec: Unknown …

piwik

PHP/MySQLで動くオープンソースのアクセスログ解析「Piwik」を削除した

PHP/MySQLで動くオープンソースのアクセスログ解析「Piwik」を削除した。アクセスログが溜まりすぎたからだ。 元々Piwikを導入したのは、(1)外部のアクセス解析サービスを使うとその重さに引 …

XAMPP

XAMPPのPHPとさくらのレンタルサーバー・ライトでImageMagick/imagickがやっと動いたのでメモ

XAMPPのPHPでImageMagick/imagickが動いたやりかた いろいろ失敗しつづけて3日間、XAMPPのPHPでImageMagick/imagickがやっと動いた。ImageMagic …

さくらのレンタルサーバー

phpinfo()のdate項目、phpスクリプト中のdate()関数にwarning警告が出た(さくらのレンタルサーバー)

さくらのレンタルサーバで、phpinfo()表示やdate()関数を使っていたら警告が表示されていて不安になった。 Warning: phpinfo(): It is not safe to rely …

open all | close all
open all | close all