On Sun, 02 Feb 2003 14:36:38 -0800 (PST)
Mihail Bota <[EMAIL PROTECTED]> wrote:

> No, this is not the problem. $i and $j start from 0, anyway. The real
> problem, as I see it, is the following:
> I have a big loop, to create something like a checkerboard, but with
> 13 or so colors. If the loop iterates more than 256 times, then those
> cells with indexes bigger than 255 (or 256, does not matter) will have
> a single color: that of the 255th or 256th cell.

Random color, you create a palette based image, which has only 256
colors (0..255), the 1st allocated color is the backgroud color, you
have only 255 colors to use, 1..255.

You loop 16*16 (<17), you reached the maximum amount of color at the
16th iteration.

You can easily solve your problem by using a truecolor image, make your
script a little bit more efficient by allocating before the loop, and
cleaner without the ugly if else endless test. Find a quick cleanup at
the footer

As a side note, an image of 500x400 means a horizantal ranges from 0 to
499 and a vertical range from 0 to 399.


hth

pierre

<?php
$image=imagecreatetruecolor(500,500);

$white=imageColorAllocate($image,255,255,255);

imageFilledRectangle($image,0,0,499,499,$white);

$colors = array(
        imagecolorallocate($image, 255, 255, 0),
        imagecolorallocate($image, 255, 0, 0),
        imagecolorallocate($image, 255, 0, 100),
        imagecolorallocate($image, 255, 100, 100),
        imagecolorallocate($image, 255, 210, 100),
        imagecolorallocate($image, 0, 255, 255),
        imagecolorallocate($image, 0, 255, 200),
        imagecolorallocate($image, 0, 100, 255),
        imagecolorallocate($image, 0, 100, 200),
        imagecolorallocate($image, 200, 0, 0),
        imagecolorallocate($image, 0, 0, 138),
        imagecolorallocate($image, 0, 0, 255)
);

for ($i=0; $i<17; $i++) {
        for ($j=0; $j<17; $j++) {
                /* should be 0..11 to avoid the test */
                $qq=rand(0,13);
                if($qq && $qq<12){
                        imagefilledrectangle($image,
                                7*$j,7*$i,7*$j+7,7*$i+7,$colors[$qq]);
                }
        }
}
header("Content-type: image/png");
imagepng($image);
imagedestroy($image);
?>

-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to