押入れ起業

ガレージベンチャー、ならぬ。もっぱら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

ヒアドキュメントに気をつけろ!なぜかエラーが出る場合…

ヒアドキュメントを使ってみたら何故か意味不明な、異常に長いエラーが出たぜ。 //エラーになるヒアドキュメント $example = <<< EOF あいうえお kakikukeko …

PHP

PDOでSQLiteの研究(1)

最近は電脳卸の研究が止まっているが、いろいろ忙しく。でもやりたい事はいろいろあるので、調べるだけは調べるのだ。 SQLite入門 【PHP】PDO関数でSQLiteを使ってみた(1) 【PHP】PDO …

PHP

PHPで画像に文字列を描画する関数 imagefttext、描画する文字列の描画サイズを取得する関数 imagettfbbox

言いたいことはタイトルの通り。 imagefttext という関数を使うと画像に文字列を書き込むことができるが、文字数が同じでも文字の半角/全角さらにはフォントによって描画後のサイズは異なる。たいてい …

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