Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 28.09.2007, 16:29   #1
mikkis
 
Регистрация: 28.09.2007
Сообщений: 7
По умолчанию Jpg по HTTP

Небольшая интерлюдия: Последний месяц пришлось много работать с веб-камерами от D-link'a. Перепробовал весь софт, который поставлялся с ними и в общем он меня не удволитворил. Пришла в голову идея попросить у компании SDK, что-бы написать свой персональный софт. Вот прошел уже месяц, а D-link молчит. Делать нечго, Delphi в руки и поехал писать сам без SDK. Сложнойстей не возникало, у камер имеется свой веб интерфейс в плане обращения к ней и отправки запросов было не столь сложно. Начал переписывать стандартный софт под себя и свои требования, продвижения есть и камера поддается на запросы и начинает делать то, что ей скажешь, кроме одного:
У нее есть функция, которая выдается текущий снимок, т.е. если выполнять это через веб-интерфейс появляется html страничка, в которой подгружен ее снимок. Заставить зделать снимок не составляет труда, а именно: http://192.168.0.42/cgi-bin/video.jpg. В результате такого в окне браузера отображается картинка.
Внимание вопрос:
Как слить эту картинку и загрузить в TImage, наиболее быстрым способом, так что-то программа успевала за секунду снять хотя-бы 5 изображений
mikkis вне форума Ответить с цитированием
Старый 28.09.2007, 16:35   #2
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

sf:=http.Get(s);
rewrite(f);
write(f,sf);
closefile(f);

затем из временного файла загружаешь в Image
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 28.09.2007, 16:40   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Думаю смысл понятен ) если нет, то можно и пояснить
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 28.09.2007, 16:43   #4
mikkis
 
Регистрация: 28.09.2007
Сообщений: 7
По умолчанию

Прошу пояснить Просто я с Indy компонентами столкнулся в первый раз
mikkis вне форума Ответить с цитированием
Старый 28.09.2007, 16:51   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

ок, компонент IdHttp
Используй в нем метод Get в качестве параметра передается адрес страницы, которую надо получить. Результат сохраняешь в текстовую переменную, которую записываешь в файл с расширением JPG и затем открываешь его как угодно. Можно разумеется не только через файл но и через stream это уже от удобства зависит
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 28.09.2007, 16:59   #6
mikkis
 
Регистрация: 28.09.2007
Сообщений: 7
По умолчанию

Вот про то, что Вы мне рассказали - на эти грабли я наступал сегодня весь день ... Пытался присвоить переменной, а как итог она не получает значения. Она просто остается пустой, хотя метод get выполняется без проблем, как и в остальных случаях, например при повороте камеры
mikkis вне форума Ответить с цитированием
Старый 28.09.2007, 17:03   #7
mikkis
 
Регистрация: 28.09.2007
Сообщений: 7
По умолчанию

может я просто писал как-то не правильно? пример:
const
pp = 'http://';
var
ss: string;
begin
ss:= IdHTTP.get(pp+host+':80/cgi-bin/video.jpg');
....
end;
Где host - ip адрес камеры в локальной сети

Последний раз редактировалось mikkis; 28.09.2007 в 17:14.
mikkis вне форума Ответить с цитированием
Старый 28.09.2007, 17:06   #8
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

эээ
const
pp = 'http://';
var
ss: string;
begin
ss:= IdHTTP.get(pp+host+':80/cgi-bin/video.jpg');
....
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 28.09.2007, 17:14   #9
mikkis
 
Регистрация: 28.09.2007
Сообщений: 7
По умолчанию

Это была всего лишь опечатка! Get там и стоит
mikkis вне форума Ответить с цитированием
Старый 28.09.2007, 17:19   #10
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Попробуй сначала такой код:

unit Unit21;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
StdCtrls;

type
TForm21 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form21: TForm21;

implementation

{$R *.dfm}

procedure TForm21.Button1Click(Sender: TObject);
begin
showmessage(IdHTTP1.Get('http://www.programmersforum.ru/images/1070/buttons/reply.gif'));
end;

end.

Если в showmessage что- то выведеться, значит у тебя что- то не так ))
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
http://programmersclub.ru/help/ ben95 О форуме и сайтах клуба 6 02.02.2008 12:23
http.Get Domovoy Работа с сетью в Delphi 2 21.11.2007 18:37


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS
Здесь нужно купить рекламу за 7 тыс руб в месяц! )
пишите сюда - alarforum@yandex.ru
ИКС 840