이미지의 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 |