[PHP-users 34086] imagettftextの色指定に関して。

kameoyaji kenjik @ trialgoods.com
2008年 10月 8日 (水) 13:11:28 JST


対策があるかどうかが知りたくて、投稿させていただきます。

レンタルサーバにて起きている現象です。
PHP5.1になります。
GDの環境は
  ["GD Version"]= "bundled (2.0.28 compatible)"
  ["FreeType Support"]=true
  ["FreeType Linkage"]=with freetype"
  ["T1Lib Support"]=true
  ["GIF Read Support"]=true
  ["GIF Create Support"]=true
  ["JPG Support"]=true
  ["PNG Support"]=true
  ["WBMP Support"]=true
  ["XPM Support"]=false
  ["XBM Support"]=true
  ["JIS-mapped Japanese Font Support"]=false

になります。
http://jp2.php.net/manual/ja/function.imagettftext.php
に記載されているサンプルソース(下記)を実行します。

<?php
// コンテントタイプを設定します
header('Content-type: image/png');

// 画像を生成します
$im = imagecreatetruecolor(400, 30);

// いくつかの色を生成します
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// 描画する文字列
$text = 'Testing...';
// フォント自身のパスでパスを置き換えます
$font = 'arial.ttf';

// テキストに影を付けます
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// テキストを追加します
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// imagepng() を使用して imagejpeg() よりもクリアなテキストにします
imagepng($im);
imagedestroy($im);
?> 

(フォントファイルの指定は変更して、正常に動作するようにしております)
この時に、指定された色(黒でグレーの影付き)での描画が出来ません。
この状態だと、黒で表示されるべき所が、黄色(0xff,0xff,0x00)で表示されま
す。

どのようにすれば、正しい色での表示が可能か、又調査すべきかをご指導頂けれ
ば助かります。


やってみたこと。

imagecolorallocateで、複数の色を作製して、imagefilledrectangleで指定して
塗りつぶしを行なった見たところ、期待している色で塗りつぶされるので、
imagecolorallocateとimagefilledrectangleは問題なく動作していると考えられ
ます。

imagettftextに色々な色指定(imagecolorallocateで作製した色)をして見たの
ですが色の変化の規則性が見つからず、どのような規則で色が変わっているかは
不明。

表示できたのは、黄色のみ(バックを白で色々トライ)

imagecolorallocate($im, 0, 0, 0)の時は黄色で表示される
imagecolorallocate($im, 255, 0, 0)の時は表示されない
imagecolorallocate($im, 0, 255, 0)の時は表示されない
imagecolorallocate($im, 0, 0, 255)の時は黄色で表示される
imagecolorallocate($im, 128, 128, 128)の時は表示されない

このように表示はされます。
(文字も正しい文字が表示されるので、フォントファイルの設定に関しては問題
はないと考えております)

又、このソースを他の環境(WINDOWS XP上 IIS+PHP5)で実行してももちろん何の
問題も無く表示されます。

レンタルサーバー又は設定上の問題だとは考えるのですが、解決策(又は逃げ道
サーバを変えるというのは無しで・・お願いしたいのですが)が見つかりません。

何か良いご意見等有りましたら、ご指導下さいませ。


-- 
かめおやじと申します、お見知りおきを
個人で運営中のサイト
http://trialgoods.com/emoji 絵文字を使いこなして見るページ
http://katte.mixsn.com       勝手にシリーズ(ことば遊びサイト)
http://mobile.mixed-in.com 携帯向けの絵文字の情報サイト
http://15qm.com              15分間のメルアドサービス
                  (アングラなサイトですが 笑)
kameoyaji <kenjik @ trialgoods.com>



PHP-users メーリングリストの案内