??? ImageSetPixel в цикле...

LeRatO

Новичок
??? ImageSetPixel в цикле...

Доброе время суток.

Столкнулась со странной то ли ошибкой, то ли особенностью, то ли со своей глупостью...

Вот элементарный код:

PHP:
@header("Content-Type: image/png"); 

    // -- создаем картинку

       $img=ImageCreate(240,100);

    // -- закрашиваем ее

       for ($j=0; $j<100; $j++) {
            for ($i=0; $i<240; $i++) {
 
                 if (floor($i/2)==$i/2) 
                   {$col=ImageColorAllocate($img,0,0,0);} else 
                   {$col=ImageColorAllocate($img,200,200,200);}

                 ImageSetPixel($img, $i, $j, $col); 
                 
            }
       }

   // -- показываем что вышло 
      ImagePng($img);
      ImageDestroy($img);
По задумке генерируемая картинка должна состоять из вертикальных линий двух цветов. Но не тут-то было - цвет нормально проставляется всего у полутора строчек имеджа, потом дублируется последний цвет:


Никаких ошибок не выдается, проверено.

Может кто с таким сталкивался и знает, что это такое и как с ним бороться???

-~{}~ 02.05.06 17:54:

Вопрос снят... Читайте доки, и все заработает как хочется ВАМ!

Вот правильный код, если кто сядет мою же лужу:
PHP:
  @header("Content-Type: image/jpeg"); 

 // выводим результат

    // -- создаем картинку

       $img=imagecreate(240,100);
       $col=array(ImageColorAllocate($img,0,0,0),
                         ImageColorAllocate($img,200,200,200));

    // -- закрашиваем ее

       for ($j=0; $j<100; $j++) {
            for ($i=0; $i<240; $i++) {
 
                 if (floor($i/2)==$i/2) 
                    {$n=0;} else {$n=1;}
                 ImageSetPixel($img, $i, $j, $col[$n]); 
                 
            }
       }

   // -- показываем что вышло 
      Imagejpeg($img);
      ImageDestroy($img);
Хитрость в иеспользовании ImageColorAllocate. :)
 
Сверху