이미지의 URL 주소를 이용해서 다운로드하고 화면에 표시하는 함수입니다. 웹 브로우져를 보면 이미지를 비동기적으로 다운로드하게 되는데, 그러한 경우 쉽게 사용할 수 있도록 꾸며봤습니다.
소스는 아래 링크를 참고하시기 바랍니다.
https://code.google.com/p/ryulib4delphi/source/browse/trunk/XE2/LoadImageFromURL.pas
동기적으로 다운로드 받는 것은 아래와 같이 사용하시면 됩니다. "Tick: 1156342"의 시간이 걸렸습니다. https를 이용하는 경우에는 한참 걸리게 됩니다.
procedure TfmMain.btLoadJPEGClick(Sender: TObject);
var
Tick, OldTick : int64;
begin
moMsg.Clear;
QueryPerformanceCounter (OldTick);
LoadImageFromUrlToBitmap(
'https://t1.daumcdn.net/cfile/tistory/196F444B4DE068841D',
Image.Picture.Bitmap
);
QueryPerformanceCounter (Tick);
moMsg.Lines.Add(Format('Tick: %d', [Tick - OldTick]));
end;
비동기적으로 다운로드할 경우에는 아래와 같이 하시면 됩니다. 함수 이름만 바뀝니다. 그리고, 함수는 바로 리턴되지만, 이미지가 성공적으로 다운로드 되었을 때 화면에 표시됩니다. "Tick: 3119"의 시간이 걸렸습니다.
procedure TfmMain.btAsyncClick(Sender: TObject);
var
Tick, OldTick : int64;
begin
moMsg.Clear;
QueryPerformanceCounter (OldTick);
AsyncLoadImageFromUrlToBitmap(
'https://t1.daumcdn.net/cfile/tistory/196F444B4DE068841D',
Image.Picture.Bitmap
);
QueryPerformanceCounter (Tick);
moMsg.Lines.Add(Format('Tick: %d', [Tick - OldTick]));
end;
클래스를 사용하면 쉽게 구현할 수 있었지만, "이미지를 다운받는다"를 보다 직관적으로 사용할 수 있도록 내부에 익명 메소드를 사용해서 처리했습니다. 자세한 것은 소스를 참고하시기 바랍니다.
| ffmpeg for Delphi - 동영상 재생기 만들기 (0) | 2013.08.11 |
|---|---|
| 온라인 파스칼 실습 (0) | 2013.03.21 |
| Delphi and Control Panel Applets (0) | 2013.03.06 |
| 2013년 1월 16일 강의 녹화 자료 (0) | 2013.01.30 |
| Parsing Command Line Parameters with Delphi (0) | 2013.01.23 |