Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизЗагрузка изображений в Image Найти похожие ветки
← →
Checist [root] (2003-10-15 13:54) [0]Как мне загрузить картинку (bmp или jpg) в Image1 из Интернета.
Например адресс у картинки http://www.pictures/pict1.jpg
Есть ли какой-то метод или специальный компонент?
← →
Reindeer Moss Eater (2003-10-15 13:56) [1]метод HTTP GETи
методы TImage LoadFrom....
← →
Checist [root] (2003-10-15 14:05) [2]LoadFromFile и т.д. не проходят при попытке, он ижет файл по адрессу: папка проги + урл адресс. Короче фигня, еще есть варианты?
← →
Checist [root] (2003-10-15 14:16) [3]Может компоеннт какой есть, а?
← →
Checist [root] (2003-10-15 14:31) [4]Ну, так что?
← →
Reindeer Moss Eater (2003-10-15 14:40) [5]LoadFromFile и т.д. не проходят при попытке, он ижет файл по адрессу: папка проги + урл адресс. Короче фигня, еще есть варианты?
Кто тебе сказал такую ерунду, что LoadFromFile надо применять к URL????
Тебе сказали что сначала нужно получить содержимое файла по HTTP, а потом загрузить полученное с помощью LoadFrom....
← →
Checist [root] (2003-10-15 14:45) [6]LoadFrom... чего? Какой метод нужен?
← →
Reindeer Moss Eater (2003-10-15 14:49) [7]Во что выгрузишь полученный файл - лоад фром то и надо делать.
Получишь его в файл - LoadFromFile
Получишь его в файл и создашь файловый поток на получившийся файл - LoadFromStream.
И т.д.
← →
Checist [root] (2003-10-15 14:52) [8]Пытаюсь так - не выходит, поправь меня.
procedure TForm1.Button1Click(Sender: TObject);
var
St1:TStream;
begin
// Label1.Caption - полный урл к картинке
Try IDHTTP1.Get(Label1.Caption, St1);
Except ShowMessage("Jay"s mother"); Exit;
Image1.Picture.Graphic.LoadFromStream(St1);
Label2.Caption := s;
end;
end;
← →
Palladin (2003-10-15 14:54) [9]мда... если отформатировать все станет на свои места
← →
Checist [root] (2003-10-15 15:01) [10]Точнее я делаю так - ну так как быть?
procedure TForm1.Button1Click(Sender: TObject);
var
St1:TStream;
begin
// Label1.Caption -
← →
Palladin (2003-10-15 15:03) [11]я же тебе сказал, отформатируй код по общеприянтым хотя бы правилам
← →
Reindeer Moss Eater (2003-10-15 15:03) [12]Пытаюсь так - не выходит, поправь меня.
Куда и что должно выходить и что именно не выходит?
Где создается экземпляр TStream?
← →
Checist [root] (2003-10-15 15:07) [13]Честно говоря я тут чайник, как нужно создавать экземпляр TStream, я переменную st1 описываю просто как тип Stream. Вылетает ошибка на строке Try IDHTTP1.Get(Label1.Caption, St1);
Искомый ресурс точно есть.
← →
Checist [root] (2003-10-15 15:10) [14]Ну как, лучше?
procedure TForm1.Button1Click(Sender: TObject);
var
St1:TStream;
begin
Try
IDHTTP1.Get(Label1.Caption, St1);
Except
ShowMessage("Jay"s mother");
Exit;
end;
Image1.Picture.Graphic.LoadFromStream(St1);
end;
← →
Reindeer Moss Eater (2003-10-15 15:13) [15]
var St1:TStream;
begin
try
Str1:= TMemoryStream.Create;
....
finally
end;
end;
← →
Reindeer Moss Eater (2003-10-15 15:14) [16]
var St1:TStream;
begin
try
Str1:= TMemoryStream.Create;
....
finally
Str1.Free;
end;
end;
← →
Checist [root] (2003-10-15 15:19) [17]Теперь после получения картинки в St1, при попытке Image1.Picture.Graphic.LoadFromStream(St1);
Вылетает ошибка - я ставлю этот соурс в метод idHTTP1.OnWorkEnd.
Как быть теперь?
← →
Reindeer Moss Eater (2003-10-15 15:21) [18]Что ты ставишь в idHTTP1.OnWorkEnd?
И зачем?
← →
Checist [root] (2003-10-15 15:25) [19]Ды один хрен куда ствить - не пашит, блин!!!
Может по другому надо, но там (в St1) точно картинка формата jpg.
← →
Reindeer Moss Eater (2003-10-15 15:29) [20]Конечно по другому.
У тебя же jpg.
uses Jpeg;
var jpg:TJpegImage;
begin
jpg:=TJpegImage.Create;
Str1.Position:=0;
jpg.LoadFromStream(str1);
Image1.Picture.Assign(jpg);
.....
end
← →
Checist [root] (2003-10-15 15:37) [21]Большое вам спасибо.
Да, еше один вопрос: вот если эта картинка у меня уже есть в Temporary Internet Files, как мне ее снова загрузить в Image1 оттуда, а не из инета?
Плиз, дайте ответ!
← →
Reindeer Moss Eater (2003-10-15 15:41) [22]LoadFromFile(имя_файла);
Но ты ведь не это имеешь ввиду, а как найти папку TIF и именно эту картинку в TIF?
← →
Checist [root] (2003-10-15 15:45) [23]Да именно это, однажды мне здесь дали ответ:
При помощи GetUrlCacheEntryInfo выудить имя файла в кеше...
Но что это и с чем его есть я не знаю, а очень хочется.
Помогите, очень прошу!
← →
Checist [root] (2003-10-15 15:58) [24]Помогите!
← →
Reindeer Moss Eater (2003-10-15 16:11) [25]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/geturlcacheentryinfo.asp
uses WinInet;
var
ei: TInternetCacheEntryInfo; BuffSize:Cardinal;
begin
...
end;
← →
Checist [root] (2003-10-15 16:17) [26]Если не ломает можешь чуть подробней и по русски как мне: картинку с адрессом http://www.pic/pic1.jpg вытащить из Tif и залить в Image1.
← →
Reindeer Moss Eater (2003-10-15 16:25) [27]Объяви переменные как в [25].
Вызови GetUrlCacheEntryInfo(PChar(" http://www.pic/pic1.jpg"),ei,BuffSize);
Если вернет True, то ei.lpszLocalFileName будет указывать на полный путь файла в кэше.
Если False, то вызывай GetLastError.
Если он вернул ERROR_FILE_NOT_FOUND то файла в кэше нету.
Если он вернул ERROR_INSUFFICIENT_BUFFER то буфер был мал.
Смотрим текущее значение BuffSize, присваиваем его ei.dwStructSize и повторяем все снова.
← →
Checist [root] (2003-10-15 16:30) [28]БОЛЬШОЕ ВАМ СПАСИБО ОТ ВСЕХ ЖИТЕЛЕЙ ЗЕМЛИ И БЛИЖНИХ ГАЛАКТИК!!!
← →
Reindeer Moss Eater (2003-10-15 17:38) [29]Небольшая поправка. Windows не распределяет память под возвращаемые строковые значения, а пишет их сразу позади 80-ти байтовой структуры TInternetCacheEntryInfo. Поэтому надо позаботиться о распределении памяти самому.
procedure TForm1.Button1Click(Sender: TObject);
var BuffSize:Cardinal; p:PInternetCacheEntryInfo;
begin
BuffSize:=0;
GetUrlCacheEntryInfo(PChar(" http://www.delphimaster.ru/i/logo.gif"),p^,BuffSize);
case GetLastError of
ERROR_FILE_NOT_FOUND : ShowMessage("ERROR_FILE_NOT_FOUND");
ERROR_INSUFFICIENT_BUFFER : try
GetMem(p,BuffSize);
p^.dwStructSize:=SizeOf(TInternetCacheEntryInfo);
if GetUrlCacheEntryInfo(PChar(" http://www.delphimaster.ru/i/logo.gif"),p^,BuffSize) then
ShowMessage(p^.lpszLocalFileName);
finally
FreeMem(p,BuffSize);
end;
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.011 c