DownsampleImages
문서 관리, 이미지
설명
실효 해상도가 MaxDPI를 넘는 임베드 이미지 XObject의 해상도를 낮춤. 각 후보 이미지는 디코딩된 뒤 종횡비를 보존하며 재샘플링되고, Quality가 0보다 크면 DCTDecode(JPEG)로, Quality가 0이면 무손실 FlateDecode(PNG)로 재인코딩되며, 이미지 스트림과 /Filter, /Width, /Height 항목이 제자리에서 다시 기록됨
구문
Delphi
Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;매개변수
| MaxDPI | DPI 단위의 해상도 임계값. 추정 실효 해상도가 이 값을 넘는 이미지가 재샘플링됨. 24 미만의 값은 호출을 중단시킴 |
|---|---|
| Quality | 재인코딩에 사용되는 1부터 100 사이의 JPEG 압축 품질. 0을 넘기면 PNG로 무손실 재인코딩 |
| Filter | 0이면 원본 픽셀 블록을 평균내는 박스 필터, 다른 값이면 쌍선형 재샘플링을 선택 |
반환 값
다시 기록된 이미지 XObject 수. MaxDPI가 24 미만이거나 임계값을 넘은 이미지가 없으면 0
비고
실효 해상도는 Letter 폭 페이지를 기준으로 이미지의 선언된 픽셀 너비에서 추정되므로 이 단계는 보수적으로 작동하고 확실하지 않을 때 인쇄 품질 이미지는 그대로 둠
선언된 픽셀 수가 8 x 8보다 작은 이미지, 디코딩에 실패한 이미지, 재샘플링 결과 크기가 원본보다 작아지지 않는 이미지는 호출을 실패시키지 않고 건너뜀
예제
PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');