За последние 24 часа нас посетил 18571 программист и 1604 робота. Сейчас ищут 874 программиста ...

Непонятки с построенем изображения

Тема в разделе "Прочие вопросы по PHP", создана пользователем Masters, 6 янв 2014.

  1. Masters

    Masters Новичок

    С нами с:
    6 янв 2014
    Сообщения:
    2
    Симпатии:
    0
    Суть проблемы следующая. Есть простецкий код, который зарисовывает квадрат попиксельно, проблема в том что двойной цикл выполняется не до конца (по крайней мере у меня).
    Причину такого поведения найти не удается, но если "$p = imagecolorallocate($im, 0, 0, 255);" вынести из цикла, то все работает. Но эта строчка должна быть в цикле обязательно!

    Код (Text):
    1.  
    2. <?
    3. header ("Content-type: image/png");
    4.  
    5. $im = @imagecreate (500, 500) or die ("Cannot Initialize new GD image stream");
    6. $background_color = imagecolorallocate ($im, 210, 210, 210);
    7.  
    8. for($i=0; $i< 500; $i++)
    9. {
    10.  for($j=0; $j< 500; $j++)
    11.   {
    12.    $p = imagecolorallocate($im, 0, 0, 255);
    13.    imagesetpixel($im, $i, $j, $p);
    14.   }
    15. }
    16.  
    17. imagepng($im);
    18. imagedestroy($im);
    19. ?>
     
  2. Masters

    Masters Новичок

    С нами с:
    6 янв 2014
    Сообщения:
    2
    Симпатии:
    0
    Проблема решена, ошибка в том что imagecreate ограничен палитрой из 256 цветов, и как только переваливает за это число, то возвращается false. Нужно использовать imagecreatetruecolor, тут таких ограничений нет.