![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Друзья, помогите. Нужно, чтобы можно было загрузить картинку из интернета в 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; Не знаю почему, но не работает. Пишет: "header corruped" или чтот подобное. Может есть какой-нибудь код для загрузки интернет графики? Последний раз редактировалось Admin, 29.07.2009 в 22:36. |
#2
|
||||
|
||||
![]() Кидаешь на форму 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'); |