Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 13:26   #1
Streetracer
Новичок
Джуниор
 
Регистрация: 08.01.2009
Сообщений: 2
Радость Как загрузить captcha и поместить её в TImage

Собственно сабж )

Пишу смс сендер, нужно каптчу поиметь ) Как её загрузить в Компонет Timage и обновлять при нажатии на кнопочку =)

Всем заранее благодарен!
Streetracer вне форума Ответить с цитированием
Старый 08.09.2009, 13:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

парсим ссылку на эту капчу далее:
Код:
var M:TMemoryStream;
begin
 M:=TMemoryStream.Create;
 idHTTP1.Get(<capcha link>,M);
 M.seek(0,0);
 Image1.Picture.LoadFromStream(M);
 M.free;
end;
типо того
а вообще на форуме много примеров
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.09.2009, 13:49   #3
Streetracer
Новичок
Джуниор
 
Регистрация: 08.01.2009
Сообщений: 2
По умолчанию

Наотрез отказывается загружать =(
Ошибка в строке
Код:
Image1.Picture.LoadFromStream(M);
Мол нельзя картинки из потока грузить...
Streetracer вне форума Ответить с цитированием
Старый 08.09.2009, 13:54   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

M.seek(0,0);=>M.position:=0;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 08.09.2009, 13:58   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
Image1.Picture.Bitmap.LoadFromStream
если капча не битмап то намучаетесь еще=D

Квэнди, дело не только в потоке(кстати ваш метод надежнее)
но и в том что я чтото не заметил у Picture метод LoadFromStream(сейчас посмотрел в Д..нету)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 08.09.2009 в 14:00.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.09.2009, 14:22   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
но и в том что я чтото не заметил у Picture метод LoadFromStream(сейчас посмотрел в Д..нету)
Да, это нормально
Код:
unit Graphics;
.............
TPicture = class(TInterfacedPersistent, IStreamPersist)
.....
protected
.....
    procedure LoadFromStream(Stream: TStream);
    procedure SaveToStream(Stream: TStream);
public
.....
property Bitmap: TBitmap read GetBitmap write SetBitmap;
...........
procedure TPicture.LoadFromStream(Stream: TStream);
begin
  Bitmap.LoadFromStream(Stream);
end;
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 12.11.2009, 01:05   #7
YYYYY
Пользователь
 
Регистрация: 16.08.2009
Сообщений: 28
По умолчанию

Здравствуйте! Подскажите, пожалуйста, как получить изображение с сайта, используя сокеты. Пробую так:
Код:
      params.Clear;
       params.Add('GET /img_key.php HTTP/1.1');
       params.Add('Host: ' + BNazva);
       params.Add('User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729) WebMoney Advisor');
       params.Add('Accept: image/png,image/*;q=0.8,*/*;q=0.5');
       params.Add('Accept-Language: ru,en-us;q=0.7,en;q=0.3');
       params.Add('Accept-Encoding: gzip,deflate');
       params.Add('Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7');
       params.Add('Content-Type: image/png');
       params.Add('Keep-Alive: 300');
       params.Add('Connection: keep-alive');
       params.Add('Referer: ' + Addres);
       params.Add('Cookie: LastLogin=***; ' + coockis);
        r:=params.Text;

       SendStr(s, r);
       Sleep(2000);
       M:=TMemoryStream.Create;
       recv(s, M, SizeOf(M), 0);
          M.position:=0;
          M.SaveToFile(ExtractFilePath(Application.ExeName)+'captha.jpg');
          MainForm.Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'captha.jpg');
          M.free;
Процедура SendStr(s, r) работает 100% - пробовал на разных сайтах-ответ приходит всегда! А вот с картинкой сервер даже не отвечает! Запрос "сдираю" у HTTP Debugger Pro V3.5. Спасибо.
YYYYY вне форума Ответить с цитированием
Старый 12.11.2009, 02:31   #8
mosq
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 90
По умолчанию

так у меня реализовано, безо всяких idhttp и т.п.

Код:
      try UrlDownloadToFile(nil, PChar(URL), PChar('captcha.jpg'), 0, nil);
      CaptchaForm.imgCap.Picture.LoadFromFile('captcha.jpg');
      CaptchaForm.show;
      except
      captcha:='ERROR_CAPTCHA';
      end;
mosq вне форума Ответить с цитированием
Старый 12.11.2009, 03:00   #9
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,453
По умолчанию

Цитата:
Сообщение от mosq Посмотреть сообщение
так у меня реализовано, безо всяких idhttp и т.п.

Код:
      try UrlDownloadToFile(nil, PChar(URL), PChar('captcha.jpg'), 0, nil);
      CaptchaForm.imgCap.Picture.LoadFromFile('captcha.jpg');
      CaptchaForm.show;
      except
      captcha:='ERROR_CAPTCHA';
      end;
Сами поняли что написали, если вам и дали код (процедуру UrlDownloadToFile) то надо было бы сначала хоть разобраться в коде а портом выкладывать полный, а не чушь всякую!
uberchel вне форума Ответить с цитированием
Старый 12.11.2009, 03:09   #10
YYYYY
Пользователь
 
Регистрация: 16.08.2009
Сообщений: 28
По умолчанию

А что за функция UrlDownloadToFile(nil, PChar(URL), PChar('captcha.jpg'), 0, nil)? Мой компилятор(D7) выдаёт undeclared...
И, второе:
В моём случае обязателен Get-запрос, т.к. на каждую PHP-сессию - своя captha!
YYYYY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поместить программу в автозагрузку }{oт@бь)ч Компоненты Delphi 13 09.02.2009 03:58
Как в statusbar поместить progressbar Andrei Isaev Общие вопросы Delphi 2 22.11.2008 22:00
Как поместить в кнопку ссылку ? Diman2008 HTML и CSS 2 16.10.2008 15:52
Как поместить trackbar в statusbar SeRhy Общие вопросы Delphi 4 11.06.2008 03:58
как поместить программу в автозапуск? Alar Общие вопросы Delphi 11 20.12.2007 23:31