[PHP-users 14148] Re: phpのバグ?( ライン描画 forループ)
Mishiki Sakana
php-users@php.gr.jp
2003年 3月 21日 (金) 03:35:57 JST
未識と申します。
> 私にとって php自体のバグとしか 考えられませんが
まぁお気持ちも分かりますが、こういう風に思う場合の99.9999%以上は自分のソースコー
ドに問題があるものです。
> <?php
> $im = @ImageCreate (300, 300) or die ("Error");
> $color = ImageColorAllocate ($im, 0,0,0); //black
>
> //このfor文の 数値を変えると、表示されるようになりますが
> //数値を変えただけで 動きが変わるのはなぜでしょう???
> for ($y=0; $y<=300; $y++) { //文字が消えてしまう。
> //for ($y=0; $y<=253; $y++) { //文字の色指定が正しくない。
> //for ($y=0; $y<=252; $y++) { //文字が正しく表示される。
> $col_gra = ImageColorAllocate($im, 255, 0, 0); //red
> ImageLine($im, 0, $y, 300, $y, $col_gra);
> }
256回近辺で挙動が代わる辺りで何かひらめきませんか?
ImageCreateは、「パレットを使用する新規画像」を作成します。
for文の中でImageColorAllocateを繰り返せば当然パレットは足りなくなります。
解決策としては、色数を減らす、ImageCreateTrueColorでイメージを作成する、などがあ
るでしょう。
グラデーションを作りたいのならば、ImageCreateTrueColorを使う方が良いでしょうね。
--
未識さかな (Mishiki Sakana)
mailto:osakana@ofo.jp
http://ofo.jp
PHP-users メーリングリストの案内