function AddJpegImage(JpegImage: TStream; X, Y, Width, Height: Double): Boolean;
| JpegImage | TStream. raw JPEG-compressed data를 담은 stream입니다. 이 메서드를 호출할 때 stream 위치는 JPEG 데이터의 시작이어야 합니다 |
True를 반환합니다. stream에 유효한 JPEG data가 없거나 embedding 작업이 실패하면 False를 반환합니다AddJpegImage는 raw byte stream으로 전달된 JPEG 이미지를 현재 PDF page에 embedded합니다. JPEG data를 다시 인코딩하지 않고 그대로 넘기므로 image quality는 source stream에 저장된 상태가 정확히 유지됩니다. 그래서 이미지를 디코딩하고 다시 압축하면 불필요한 quality loss나 CPU overhead가 생기는 대량 문서 생성에 잘 맞습니다
JpegImage stream에는 SOI marker에서 시작하는 완전하고 유효한 JPEG file이 들어 있어야 합니다. 이 메서드를 호출하기 전에 stream의 현재 위치는 JPEG data의 시작이어야 합니다. TFileStream, TMemoryStream, database blob stream 등 어떤 TStream descendant도 받을 수 있습니다
X와 Y 매개변수는 PDF user unit 기준 배치 사각형의 왼쪽 아래 모서리를 지정합니다(원점은 page 왼쪽 아래, Y는 위로 증가). Width와 Height는 page에서 렌더링할 크기를 정하며, JPEG는 pixel 크기와 관계없이 그 안에 맞게 축소 또는 확대됩니다
성공하면 이 메서드는 True를 반환합니다. stream에 유효한 JPEG data가 없으면 예외를 던지지 않고 False를 반환하므로, 출처가 불확실한 data를 다룰 때는 반환값을 확인하세요
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('C:\Images\photo.jpg', fmOpenRead or fmShareDenyNone);
try
Pdf1.NewPage(595, 842);
if not Pdf1.AddJpegImage(Stream, 72, 400, 300, 225) then
ShowMessage('Failed to embed JPEG image.');
finally
Stream.Free;
end;
end;