![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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'); |