Q&A

  • 원격 이미지뷰어에서 이미지다운문제
안녕하세요.
activeX로 원격 뷰어개발중에 에로사항이 있어 문의 드립니다..
150장정도의 이미지를 IdFtp를 이용해서 다운받아서,
저장후 보여주는 겁니다. 테스트 결과 50장정도는 실행이 됩니다.
근데 50장이 넘어가면 timeout이 걸립니다. IdFtp를 타임아웃시간을 변경
이 불가능한지요. 50장다운받는데 약 30초가량 걸립니다. activeX폼이 뜨는
30초가량 걸린다는 얘기죠. 좀더 빠른 방법이 없는지 알고 싶습니다.

또, 만일 이미지를 DB에 저장후 하게 되면 좀더 빨라질지도 궁금합니다.
그럼 수고들 하세요
====    이미지 다운로드부분   =======
var
  cnt : integer;
  scnt : string;
  JPG_SIZE : array[1..150] of integer;
  JPG_NAME : string;
  JPG_PAGE : integer;
begin
  IdFTP1.Connect(True);
  IdFTP1.ChangeDir('/www/demox/books/gutari');
  JPG_IMG := TJPEGImage.Create;
  MEM := TMemorystream.Create;
  JPG_PAGE := 1;
  for cnt := 1 to 150 do
  begin
    scnt := inttostr(cnt);
    if length(scnt) = 1 then
    begin
      scnt := '00' + scnt;
    end
    else if length(scnt) = 2 then
    begin
      scnt := '0' + scnt;
    end
    else if length(scnt) = 3 then
    begin
      scnt := scnt;
    end;
    JPG_NAME := scnt + '.jpg';
    IdFTP1.Get(JPG_NAME,MEM);
    JPG_SIZE[cnt] := IdFTP1.Size(JPG_NAME);
  end;

===== 이미지 뷰  ==========
IMG_SIZE :=0;
  JPG_PAGE := JPG_PAGE + 1;
  if JPG_PAGE <= 150 then
  begin
    for i:=1 to JPG_PAGE -1 do
    begin
      IMG_SIZE := IMG_SIZE + JPG_SIZE[i];
    end;
    MEM.Position := IMG_SIZE;
    JPG_IMG.LoadFromStream(MEM);
    Image1.Picture.Graphic := JPG_IMG;
  end
  else
  begin
    JPG_PAGE := 150;
    showmessage('마지막페이지입니다.');
  end;

0  COMMENTS