проблема с imagecolorallocate

Back Door Man

Новичок
проблема с imagecolorallocate

Проблемка такая:

Делаем аплоад файла

Определяем цвет в имадже(jpeg)
$black = imagecolorallocate ($im, 0, 0, 0);

Надо сделать надпись на картинке:
$str = "some text";

Пишем:
ImageString($im, 0, 0, 0, $str, $black);

Надпись на картинке выводится не черным цветом, как должна, а цветом пикселя с координатами (0,0)!

В чем проблема, уважаемый all ?
 

Lelik

Guest
посмотри какой код тебе возвращает эта функция ... если -1 то это код ошибки и он просто рисует самым последним цветом который был задан ... такое у меня происходило после того как я 256 раз вызывал
imagecolorallocate
 

Back Door Man

Новичок
Так и есть, возвращает -1
но:
1) не всегда, зависит от картинки которую подгружаю
2) это первое использование imagecolorallocate в скрипте, собсна, с чего бы ему ломаться?

Итак, бага зависит от картинки, как бы докопаться в чем причина?
 

Barlone

Guest
gd 1.x работает с картинками с палитрой (не более 256 цветов). В твоем jpeg'e уже все 256 цветов заняты, и новый добавить нельзя. Или используй imagecolorresolve вместо imagecolorallocate (но тогда черный цвет может получиться не совсем черным, выберется самый темный из имеющихся). Или переходи на gd 2.x
 
Сверху