Delphi XE3 기준.
uses절에 Vcl.Imaging.jpeg, Vcl.Imaging.pngimage, Vcl.Imaging.gifimg 을 추가.
확장자별로 파일 불러오기 procedure. (*.BMP, *.JPEG, *.GIF, *.PNG)
procedure TForm1.ImageLoadTest;
var
tempGraphic : TGraphic;
tempFileStream : TFileStream;
tempFirstBytes : AnsiString;
tempFileName : string;
begin
tempFileName := '파일명' (Ex : C:\Users\Public\Pictures\Test.jpg);
tempFileStream := TFileStream.Create(tempFileName, fmOpenRead);
SetLength(tempFirstBytes, 8);
tempFileStream.Read(tempFirstBytes[1], 8);
try
// JPEG image
if Copy(tempFirstBytes, 1, 2) = #$FF#$D8 then
begin
tempFileStream.Free;
tempGraphic := TJPEGImage.Create;
tempGraphic.LoadFromFile(tempFileName);
tempGraphic.Free;
end
// GIF image
else if Copy(tempFirstBytes, 1, 3) = 'GIF' then
begin
tempFileStream.Free;
tempGraphic := TGIFImage.Create;
tempGraphic.LoadFromFile(tempFileName);
tempGraphic.Free;
end
// BMP image
else if Copy(tempFirstBytes, 1, 2) = 'BM' then
begin
tempFileStream.Free;
tempGraphic := TBitmap.Create;
tempGraphic.LoadFromFile(tempFileName);
tempGraphic.Free;
end
// PNG image
else if tempFirstBytes = #137'PNG'#13#10#26#10 then
begin
tempFileStream.Free;
tempGraphic := TPngImage.Create;
tempGraphic.LoadFromFile(tempFileName);
tempGraphic.Free;
end
else
begin
tempFileStream.Free;
end;
except
on E : Exception do
begin
tempFileStream.Free;
tempGraphic.Free;
ShowMessage(E.Message);
end;
end;
end;
'Program > Delphi' 카테고리의 다른 글
[Delphi] Excel 변환 (0) | 2014.07.08 |
---|---|
[Delphi] Clipboard의 이미지 불러오기 (0) | 2014.07.02 |
[Delphi] 스크린 기준 컴포넌트 객체의 좌표 구하기 (0) | 2013.12.27 |
[Delphi] 레지스트리(Registry) 등록 (0) | 2013.09.03 |
[Delphi] 재귀함수를 이용한 폴더 복사 (1) | 2013.01.16 |