Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка рисунка 
V
    Опции темы
od0201
Дата 7.3.2009, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



Всем доброго времени суток
Код

use CGI ':standard';
use GD::Graph::lines;
use strict;

my @data = ([1,2,3,4 ], [66, 58, 92, 83]);

my $mygraph = GD::Graph::lines->new(300, 100);

my $myimage = $mygraph->plot(\@data) or die $mygraph->error;

#print "Content-Type: text/html\n\n";
#print "Текст";
print "Content-type: image/png\n\n";
print $myimage->png;

Работает (рисует), как только убираю комментарий (добавляю текста), выводит бред.
Как одновременно выводить и тект и рисунок?
PM MAIL   Вверх
od0201
Дата 8.3.2009, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



Задачу решил, сохранивши в файл, и прописавшиего файл через тег <IMG ...>, но проблема осталась..

но хотелось бы увидеть решение этой задачи "на лету"
PM MAIL   Вверх
Unrealm
Дата 8.3.2009, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 19.7.2007

Репутация: 1
Всего: 1



text/html и image должны разделяться, сначала ты выводишь text/html c, я так понимаю, разметкой, которая может содержать фрагмент типа <img src="image.pl"> и уже в свою очередь image.pl будет выплевывать image/png и все к нему относящееся. 
PM MAIL   Вверх
tolkien
Дата 8.3.2009, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: 4
Всего: 4



Правильно делает что выводит вам html(то что вы назвали бредом).

Вы не понимаете как работает протокол http.

Строчка 
print "Content-Type: ...\n\n";
Определяет тип документа. Когда браузер клиента получает данные именно по этой строчке он узнает что это. И обрабатывает соответствующем образом.

Если вы пишите два раза 
print "Content-Type: ...\n\n"; 
указывая разные типы. То самый первый Content-Type будет использован браузером пользователя для определения типа документа.
PM MAIL   Вверх
od0201
Дата 8.3.2009, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



Это я прекрасно понимаю, что проблема не в Perle, а в HTMLе
и эту проблему можно было бы решить, если б знать как завершить
Content-Type:..
и начать новый
Content-Type:..
(я где-то видел что-то типа такого, но не могу найти)
и скорее всего в Реrle есть фунции, которые могут переключать Content-Type  и вставлять картинки.

Цитата

..и уже в свою очередь image.pl будет выплевывать...

1. как ты замелил у меня рисуется график, исходя из предложеного (если оно еще и заработает), мне image.pl придется передавать очень много данных.
2. под каждый новый рисунок писать новую image2..N.pl или еще больше передавать данных в image.pl.
Уж все это слишком громоздко, легче сохранить в файл(его хоть удалить потом можно будет), моя цель сделать как можно проще и оставить как можно меньше мусора после себя
PM MAIL   Вверх
Unrealm
Дата 8.3.2009, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 19.7.2007

Репутация: 1
Всего: 1



Если мне не изменяет память, то на лету так не сделать, это должно выполняться не в один заход, все это есть в RFC касательно протокола HTTP.
PM MAIL   Вверх
tolkien
Дата 8.3.2009, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 277
Регистрация: 5.4.2008

Репутация: 4
Всего: 4



Правильно сделали. Надо сохранять в картинки в файлы в какой нибудь дериктории. В HTML вставлять только ссылки на них. Убирать мусор. Т.е удалять эти картинки вы можете по разному. Тут уж можете фантазировать сколько хотите. 
PM MAIL   Вверх
od0201
Дата 9.3.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



Столкнулся с еще одной проблемой по этой теме, так я вставляю рисунок
Код

  printf "<p><img src='%s'>",$urg.'gr'.$x.'.png';  

если я делаю другой запрос, у меня меняется вся страница, у меня меняются все данные, у меня меняется рисунок в файле, но на экран выводится старый рисунок, и он обновляется только в том случае, если я жму обновить страницу.
В чем прикол?

Это сообщение отредактировал(а) od0201 - 9.3.2009, 22:53
PM MAIL   Вверх
klem4
Дата 10.3.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 100
Регистрация: 27.7.2008

Репутация: 2
Всего: 2



Кешируется вестимо ?
PM MAIL   Вверх
od0201
Дата 15.3.2009, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 16.1.2009

Репутация: 1
Всего: 1



проблему кеширования решил, задовая для каждого графика(рисунка) уникальное имя, 
Код

 my $grn=sprintf "~gr%d%04d.png",$x,int rand(9999);

хотя видел способ отключить кеширования, что будет наверное правельнее, потом попробую


Это сообщение отредактировал(а) od0201 - 15.3.2009, 22:06
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0674 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.