Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Сохранение картинки из интернета


Автор: Samhein 5.3.2006, 23:05
TImage вроде не может. Мож как-нибудь с помощью TWebBrowser загрузить и сохранить? Или другой компонент посоветуйте...

Автор: Poseidon 5.3.2006, 23:15
Скачивай как обычный файл.
Если не имеет значения способ скачивания, то можешь так:


Код
uses Wininet;

function GetInetFile(const fileURL, FileName: string): boolean;
const
  BufferSize = 1024;
var
  hSession, hURL: HInternet;
  Buffer: array[1..BufferSize] of Byte;
  BufferLen: DWORD;
  f: file;
  sAppName: string;
begin
  Result := False;
  sAppName := ExtractFileName(Application.ExeName);
  hSession := InternetOpen(PChar(sAppName),
  INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
  try
    hURL := InternetOpenURL(hSession, PChar(fileURL), nil, 0, 0, 0);
    try
      AssignFile(f, FileName);
      Rewrite(f,1);
      repeat
        InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
        BlockWrite(f, Buffer, BufferLen);
      until
        BufferLen = 0;
      CloseFile(f);
      Result := True;
    finally
      InternetCloseHandle(hURL);
    end;
  finally
    InternetCloseHandle(hSession);
  end;
end;


а можешь с помощью Indy:

Код

uses  IdComponent, IdTCPConnection, IdTCPClient,
         IdHTTP, IdBaseComponent;

procedure GetFile(URL, TaskFile);
var
IdHTTP: TIdHTTP;
Stream: TMemoryStream;
begin
IdHTTP:= TIdHTTP.Create(nil);
Stream:= TMemoryStream.Create;

try
  IdHTTP.Get(URL, Stream);
  Stream.SaveToFile(TaskFile);
finally
  Stream.Free;
  IdHTTP.Free;
  end;
end;


Автор: Snowy 6.3.2006, 11:12
http://forum.vingrad.ru/index.php?showtopic=84442&view=findpost&p=657185

Автор: Samhein 6.3.2006, 13:49
А что быстрее будет работать?

Автор: Snowy 6.3.2006, 13:52
Почти без разницы - основная задержка будет от инета.
Ну а вообще логичнее делать без сохранения картинки на диск.

Автор: Samhein 6.3.2006, 20:05
Snowy, это как?

Автор: Snowy 7.3.2006, 11:29
Цитата(Samhein @ 6.3.2006, 20:05 Найти цитируемый пост)
Snowy, это как?
Линк я дал. Там полноценный код для JPEG. Выше в той же теме - универсальный код для 5 форматов.
Можно добавить и другие форматы.

Автор: Samhein 7.3.2006, 12:55
Цитата

логичнее делать без сохранения картинки на диск

Мне как раз надо сохранить картинку на диск...
Всем спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)