Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.07.2009, 12:47
syserg syserg вне форума
Прохожий
 
Регистрация: 26.01.2009
Сообщения: 15
Репутация: 10
По умолчанию Help! Загрузка картинок из интернет в TImage

Друзья, помогите. Нужно, чтобы можно было загрузить картинку из интернета в TImage форматов jpg, png, gif и пр.
Я так понимаю, что делается это через MemoryStream, но как - не знаю.

Нашел следующий код:
Код:
procedure TForm1.DownloadJPG(url:string;im:TImage);
var
  strStream: String;
  memStream: TMemoryStream;
  jpegimg: TJPEGImage;
begin
  try
    strStream := Form1.idhttp1.Get (url);
  except
    //ShowMessage('Image was not found');
    Exit;
  end;
  memStream := TMemoryStream.Create;
  jpegimg   := TJPEGImage.Create;
  try
    memStream.Write(strStream[1], Length(strStream));
    memStream.Position := 0;
    jpegimg.LoadFromStream(memStream);
    im.Picture.Assign(jpegimg);
  finally
    memStream.Free;
    jpegimg.Free;
  end;
end;
Admin: Не забываем про теги!

Не знаю почему, но не работает. Пишет: "header corruped" или чтот подобное. Может есть какой-нибудь код для загрузки интернет графики?

Последний раз редактировалось Admin, 29.07.2009 в 22:36.
Ответить с цитированием
  #2  
Старый 27.07.2009, 10:18
Аватар для Casper-Hacker
Casper-Hacker Casper-Hacker вне форума
Начинающий
 
Регистрация: 19.05.2008
Сообщения: 147
Версия Delphi: x
Репутация: 15
По умолчанию

Кидаешь на форму IDHTTP и IdAntiFreeze (IdAntiFreeze - для того чтобы форма не висла)
Задаешь глобальную переменную TheEnd:integer;
Далее на кнопке пишешь...
Код:
Var
 fs: TFileStream; 
begin
fs := TFileStream.Create('Имя файла', fmCreate);
idHTTP1.Get('Прямая ссылка на картинку', fs);
fs.Free;

На процедуре IdHTTP1.Work пишешь:
Код:
TheEnd:=AWorkCount;

На процедуре IdHTTP1.WORKBEGIN пишешь:
Код:
if TheEnd=AWorkCountMax then Image.Picture.LoadFromFile('Твой_файл.jpg');
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025