DownsampleImages

문서 관리, 이미지

설명

실효 해상도가 MaxDPI를 넘는 임베드 이미지 XObject의 해상도를 낮춤. 각 후보 이미지는 디코딩된 뒤 종횡비를 보존하며 재샘플링되고, Quality가 0보다 크면 DCTDecode(JPEG)로, Quality가 0이면 무손실 FlateDecode(PNG)로 재인코딩되며, 이미지 스트림과 /Filter, /Width, /Height 항목이 제자리에서 다시 기록됨

구문

Delphi

Function TPDFlib.DownsampleImages(MaxDPI, Quality, Filter: Integer): Integer;

매개변수

MaxDPIDPI 단위의 해상도 임계값. 추정 실효 해상도가 이 값을 넘는 이미지가 재샘플링됨. 24 미만의 값은 호출을 중단시킴
Quality재인코딩에 사용되는 1부터 100 사이의 JPEG 압축 품질. 0을 넘기면 PNG로 무손실 재인코딩
Filter0이면 원본 픽셀 블록을 평균내는 박스 필터, 다른 값이면 쌍선형 재샘플링을 선택

반환 값

다시 기록된 이미지 XObject 수. MaxDPI가 24 미만이거나 임계값을 넘은 이미지가 없으면 0

비고

실효 해상도는 Letter 폭 페이지를 기준으로 이미지의 선언된 픽셀 너비에서 추정되므로 이 단계는 보수적으로 작동하고 확실하지 않을 때 인쇄 품질 이미지는 그대로 둠

선언된 픽셀 수가 8 x 8보다 작은 이미지, 디코딩에 실패한 이미지, 재샘플링 결과 크기가 원본보다 작아지지 않는 이미지는 호출을 실패시키지 않고 건너뜀

예제

PDF.LoadFromFile('scan.pdf', '');
PDF.DownsampleImages(150, 80, 0);
PDF.SaveToFile('scan-compressed.pdf');