Форум SAPE.RU

Форум SAPE.RU (http://forum.sape.ru/index.php)
-   Разработка и сопровождение сайтов (http://forum.sape.ru/forumdisplay.php?f=29)
-   -   Пожите по пхп, камрады.. (http://forum.sape.ru/showthread.php?t=37523)

Йода 07.09.2009 09:39

Пожите по пхп, камрады..
 
Любой йожык знает как с помощью GD в пхп нарисовать картинку.
Архитектурно в общем виде это делаецца так:
Цитата:

$image=imagecreate(555,555); //создали картинку
***
тут рисуем всякое разное
***
header('Content-Type: image/png;'); //Отправляем заголовки серверу
imagepng($image); //выдаем картинку
Особенность этой архитектуры такова, что это- отдельный файл, который в процессе отработки скрипта и выдачи header('Content-Type: image/png;') становится картинкой и пригоден к использованию в качестве src в тегах img. Тоесть я имею "основной" скрипт, и чтобы внедрить в него динамическую картинку мне нужно вызвать другой скрипт ("картиночный"), который и сгенерит мне картинку, которую я заюзаю в основном. Если картинка- например для счетчика и на ней тупо отрисовываюцца цифры- то их несложно передать в картиночный скрипт параметром. А если я отрисовываю график на 10 тысяч точек, то это затруднительно.

Поэтому мне оченно охота генерить картинку прямо в основном скрипте, без вызова какогото дополнительного с передачей ему тонны параметров.

Как это сделать- немогу сообразить.
Памажите, кто сечёт в пхп, плиз.
:)

Anatoly 07.09.2009 09:46

Перед вызовом картиночного скрипта надо объявить глобальный массив на 10 тыщ точек. А скрипт при вызове по нему нарисует. Вроде так. :)

А хотя не, фигню сморозил. :)

Squish 07.09.2009 09:49

Передавать данные их скрипта в скрипт через:
1 разделяемую (sharing) память, только если свой сервак, хостеры отключают
2 файл на диске
3 сессии, не подходит если надо одну картинку на несколько посетителей

Сам искал как можно из одного скрипта вызвать другой на стороне сервера, ничего хорошего для обычных хостингов не нашел.

alex063 07.09.2009 09:56

Йода, обратитесь к Апокалипсису, он же спец в пхп.

Anatoly 07.09.2009 10:11

Цитата:

Сообщение от Squish (Сообщение 556359)
2 файл на диске

В случае обычного хостинга я б так и сделал - проще всего.

Pikasso_40 07.09.2009 10:14

Цитата:

Сообщение от Йода (Сообщение 556353)
А если я отрисовываю график на 10 тысяч точек, то это затруднительно.

А откуда вы берете эти самые 10к точек для основного скрипта ? Не формируете же вы их на лету ?

sashko 07.09.2009 10:14

Цитата:

Сообщение от Squish (Сообщение 556359)
2 файл на диске
3 сессии, не подходит если надо одну картинку на несколько посетителей

+1
можно еще базу дергать
а если картинка 1 на несколько посетителей или на некоторое время, можно раз сгенерить и сохранить статическую

Йода 07.09.2009 10:32

Цитата:

Сообщение от Pikasso_40 (Сообщение 556374)
А откуда вы берете эти самые 10к точек для основного скрипта ? Не формируете же вы их на лету ?

Из базки, на лету обрабатываю математикой.

Камрады, спасибо!
Вариантов нет.
Буду кодить через ж.

Pikasso_40 07.09.2009 10:35

Цитата:

Сообщение от Йода (Сообщение 556388)
Из базки, на лету обрабатываю математикой.

Ну вот вам и ответ: перенесите эту фазу в скрипт картинки.

ahsinis 07.09.2009 14:36

1) передавать параметры через сессию (или через имя временного файла, ID записи в БД и. т.д.)
2) генерить png файл со случайным именем в скрипте (см. остальные параметры функции imagepng), потом подставляем имя этого файла в <img src="..."> (правда в этом случае надо будет удалять накопившиеся файлы как-то)


Часовой пояс GMT +3, время: 12:47.

Работает на vBulletin® версия 3.8.7.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
SAPE.RU — система купли-продажи ссылок с главных и внутренних страниц сайтов.