Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как передать картинку в CGI ? 
V
    Опции темы
vood
Дата 24.5.2006, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Попробовал неполучаеться
вот код
Код

var 
a:tstream;
im:tpicture;
..
im.Bitmap.Height:=80;
im.Bitmap.Width:=80;
im.Bitmap.Canvas.Brush.Color:=clolive;
im.Bitmap.Canvas.Rectangle(0,0,80,80);
im.Bitmap.Canvas.Font.Color:=clblack;
im.Bitmap.Canvas.Font.Size:=12;
im.Bitmap.Canvas.TextOut(1,1,'Надпись');
im.Bitmap.SaveToStream(a);
response.Contentstream:=a;
a.Free;
im.Free;
 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
Snowy
Дата 24.5.2006, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Кто должен передать?
Клиент на сервер или сервер скрипту?
Если первое, то http://forum.vingrad.ru/index.php?showtopic=81773 
PM MAIL   Вверх
vood
Дата 25.5.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



вообще это cgi файл 
он исполняет роль каунтера
но так как вывод ввиде текста плохо выглядит, нужно вывести значение счетчика ввиде картинки 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
Snowy
Дата 25.5.2006, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



CGI у тебя консольный, как я понимаю.
Тогда:
Код

var
  h: THandle;
  written: dword;
begin
  h := GetStdHandle(STD_OUTPUT_HANDLE);
  WriteFile(h, buf, size, written, nil);
  CloseHandle(h);
где buf - указатель на буфер, где сидит картинкаж; size - размер данных. 
Если картинка в MemoryStream, то у него есть указатель на данные и размер - их и передавай. 
PM MAIL   Вверх
vood
Дата 26.5.2006, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нет Snowy, cgi не консолный он создан как webserverapplication 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
Snowy
Дата 26.5.2006, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Тогда это не CGI, а сервер.
В чем проявляется это "Неполучание"?
Вместо картинки появляется набор байт?
Тогда просто нужно установить mime-type:
Код

AResponseInfo.ContentType:=http.MIMETable.GetDefaultFileExt('.bmp');
 
PM MAIL   Вверх
vood
Дата 27.5.2006, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



это cgi просто он создан не как консольное приложение(consoleapplication) 
неполучание выражаеться в том что вместо картинки в браузере отображаеться сообщение об ошибке  


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
Snowy
Дата 27.5.2006, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Вероятно это потому, что ты забыл ее отдать: 
Цитата(vood @  24.5.2006,  08:10 Найти цитируемый пост)
response.Contentstream:=a;

Наверное ты хотел сделать так:
Код

var    
  im: tpicture;    
..
  im.Bitmap.Height:=80;    
  im.Bitmap.Width:=80;    
  im.Bitmap.Canvas.Brush.Color:=clolive;    
  im.Bitmap.Canvas.Rectangle(0,0,80,80);    
  im.Bitmap.Canvas.Font.Color:=clblack;    
  im.Bitmap.Canvas.Font.Size:=12;    
  im.Bitmap.Canvas.TextOut(1,1,'Надпись');
  im.Bitmap.SaveToStream(response.Contentstream);
  response.ContentType:=http.MIMETable.GetDefaultFileExt('.bmp');
  im.Free;

Только вот выбор BMP мне не понятен.
Обычно для этого используют GIF. 
PM MAIL   Вверх
vood
Дата 28.5.2006, 04:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а тогда если GIF то нужно использовать другой класс?  


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
vood
Дата 28.5.2006, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Отбой!Я сделел преадресацию на файл картинки. Теперь все работает!!!!!!!!!!
Все равно  Snowy, спасибо! 


--------------------
Вы все еще курите ? Тогда мы идем к вам
 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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