절름발이 프로그래머/Delphi

델파이에서 그래픽 파일(JPG, GIF, PNG) 다루기

훅크선장 2009. 8. 6. 14:53
델파이에서는 기본적으로 TImage 라는 컴포넌트로 이미지를 다루는데,
이것은 그냥 BMP 파일을 다루는 것 같습니다.

델파이 2007에서는 JPG와 GIF 형식을 바로 보여줄 수 있습니다.
델파이 2009에서는 PNG 형식을 추가로 바로 보여줄 수 있게 되었습니다.

PNGImage 라는 오픈소스를 아예 Embarcadero에서 사버렸습니다.
머, GIF쪽은 저자가 직접 기증?한거이지만...

델파이 2009에서 TImage 컴포넌트에 각각의 그래픽 파일을 보여주는 예제는 다음과 같습니다.
각각의 이미지 파일을 처리하기 위해서는 
uses PNGImage, JPEG, GIFImg;

구문을 앞부분에 사용하여야만 합니다.
(클래스 즉 파일명에 일관성이 없네요~~ 쯧쯧~~)

procedure TForm1.Button1Click(Sender: TObject);
var
  Extension : String;
  PNG : TPNGImage;
  JPG : TJPEGImage;
  GIF : TGIFImage;
begin

  // 저장된 파일의 확장자명을 추출한다.
  Extension := ExtractFileExt(OutputFilePath);
  Extension := LowerCase(Extension);

  // GIF 파일 형식인 경우,
  if Extension = '.gif' then
  begin
    GIF := TGIFImage.Create;
    try
      GIF.LoadFromFile(OutputFilePath);
      Image1.Picture.Assign(GIF);
      Image1.Stretch := True;
      Image1.Visible := True;
    finally
      GIF.Free;
    end;


  end
  // JPG 파일 형식인 경우,
  else if Extension = '.jpg' then
  begin
    JPG := TJPEGImage.Create;
    try
      JPG.LoadFromFile(OutputFilePath);
      Image1.Picture.Assign(JPG);
      Image1.Stretch := True;
      Image1.Visible := True;
    finally
      JPG.Free;
    end;
  end
  // PNG 파일 형식인 경우,
  else if Extension = '.png' then
  begin
    PNG := TPngImage.Create;
    try
      PNG.LoadFromFile(OutputFilePath);
      Image1.Picture.Assign(PNG);
      Image1.Stretch := True;
      Image1.Visible := True;
    finally
      PNG.Free;
    end;
  end;
end;