fashion guide
Guest
Вопрос о GD
Не уверен, что пишу в правильную ветку, но..
У меня сервер статистики посещений.. то есть, с помощью javascript'а, на стороне клиента идет запрос на мой сервер а там.. после подсчетов выдается результат в виде нарисованной картинки. Навроде hotlog'а...
В последние два-три дня мой сервак стал ощущать на себе перегрузки.. то есть, в секунду по 5-6 запросов.. в связи с чем, картинка не загружается.. то есть, html'ка выводит ее координаты.. с помощью тега IMG, а сам файл отстутствует. Я решил значительно разгрузить скрипт подсчета.. думаю, мож не справляется просто.. оптимизировал, перекраивал, крутил.. ситуация не изменилась.
После, решил вести логи на каждое исполнение.. и посмотреть, что там просиходит.. почему нет картинки..
так вот, основываясь на данных лога... все подсчеты идут считанные миллисекунды, все прекрасно и готово к использованию, НО, там где начинается рисование - лог прекращает свою работу.. то есть, на этом выполнение скрипта прекращается. Фактически.. перестает рисовать.
--- фрагмент лога
Получение результатов запроса - OK
Сравнение часов - OK
Начало рисования, данные uref: 101 - OK
----
на этом лог заканчивается..
должно быть так:
---
Получение результатов запроса - OK
Сравнение часов - OK
Начало рисования, данные uref: 101 - OK
Отправка заголовка - OK
Прорисовка координат - OK
Результат 12:57:43 - OK
---
Под отправкой заголовка у меня стоит:
header("Content-type: image/png");
$im =ImageCreateFromPNG("images/$imi.png");
Прорисовка координат:
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 204, 204, 255);
Результат:
ImageString($im, 1, $x1, $y1, "$allref", $referes);
ImageString($im, 2, $x2, $y2, "$ref", $users);
ImagePNG($im);
imagedestroy($im);
Как заставить его рисовать?
-~{}~ 25.06.04 13:29:
Еще один вопрос.. сразу.
Это переменные прорисовки цветов.
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 0, 51, 0);
Как мне сделать разные вариации цветов? например.. если картинка синяя - цветовая политра должна быть бело-голубая.. если красная, то бело-розовая...
я дела это так.
switch ($color)
{
case "blue":
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 204, 204, 255);
break;
case "red":
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 153, 204, 255);
break;
}
Как мне сделать это но более проще? У меня этих вариантов, помимо red и т.п. около 40... Я думаю, 40 case'ов это перебор..
Не уверен, что пишу в правильную ветку, но..
У меня сервер статистики посещений.. то есть, с помощью javascript'а, на стороне клиента идет запрос на мой сервер а там.. после подсчетов выдается результат в виде нарисованной картинки. Навроде hotlog'а...
В последние два-три дня мой сервак стал ощущать на себе перегрузки.. то есть, в секунду по 5-6 запросов.. в связи с чем, картинка не загружается.. то есть, html'ка выводит ее координаты.. с помощью тега IMG, а сам файл отстутствует. Я решил значительно разгрузить скрипт подсчета.. думаю, мож не справляется просто.. оптимизировал, перекраивал, крутил.. ситуация не изменилась.
После, решил вести логи на каждое исполнение.. и посмотреть, что там просиходит.. почему нет картинки..
так вот, основываясь на данных лога... все подсчеты идут считанные миллисекунды, все прекрасно и готово к использованию, НО, там где начинается рисование - лог прекращает свою работу.. то есть, на этом выполнение скрипта прекращается. Фактически.. перестает рисовать.
--- фрагмент лога
Получение результатов запроса - OK
Сравнение часов - OK
Начало рисования, данные uref: 101 - OK
----
на этом лог заканчивается..
должно быть так:
---
Получение результатов запроса - OK
Сравнение часов - OK
Начало рисования, данные uref: 101 - OK
Отправка заголовка - OK
Прорисовка координат - OK
Результат 12:57:43 - OK
---
Под отправкой заголовка у меня стоит:
header("Content-type: image/png");
$im =ImageCreateFromPNG("images/$imi.png");
Прорисовка координат:
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 204, 204, 255);
Результат:
ImageString($im, 1, $x1, $y1, "$allref", $referes);
ImageString($im, 2, $x2, $y2, "$ref", $users);
ImagePNG($im);
imagedestroy($im);
Как заставить его рисовать?
-~{}~ 25.06.04 13:29:
Еще один вопрос.. сразу.
Это переменные прорисовки цветов.
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 0, 51, 0);
Как мне сделать разные вариации цветов? например.. если картинка синяя - цветовая политра должна быть бело-голубая.. если красная, то бело-розовая...
я дела это так.
switch ($color)
{
case "blue":
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 204, 204, 255);
break;
case "red":
$users = ImageColorAllocate ($im, 255, 255, 255);
$referes = ImageColorAllocate ($im, 153, 204, 255);
break;
}
Как мне сделать это но более проще? У меня этих вариантов, помимо red и т.п. около 40... Я думаю, 40 case'ов это перебор..