THotPDF.DecodeLoadedImageRegionAtResolution Method
원본 좌표 사각형을 디코딩하되, 디코더가 요청된 출력 크기를 여전히 만족하는 더 낮은 해상도 레벨을 고를 수 있게 허용합니다
선언
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
유닛
HPDFDoc
매개변수
| 이름 | 목적 |
|---|---|
AImageStream | 디코딩할 로드 이미지 XObject stream |
RegionLeft | 포함되는 왼쪽 원본 좌표 |
RegionTop | 포함되는 위쪽 원본 좌표 |
RegionRight | 제외되는 오른쪽 원본 좌표 |
RegionBottom | 제외되는 아래쪽 원본 좌표 |
TargetPixelWidth | 최종 렌더링 배율 이전에 유용한 최소 디코딩 폭 |
TargetPixelHeight | 최종 렌더링 배율 이전에 유용한 최소 디코딩 높이 |
반환 값
범위를 보정한(clamped) 비어 있지 않은 영역에 대해 새로 할당된 비트맵을 반환하며, 이미지나 요청한 영역을 디코딩할 수 없으면 nil을 반환합니다
해상도 선택
- JPEG 2000은 디코딩된 폭과 높이가 모두 요청된 픽셀 크기 이상을 유지하는 가장 큰 2의 거듭제곱 축소를 선택합니다
- 이 선택은 어느 한 차원도 과소 해상도로 떨어지지 않으므로, 그리기 전 불필요한 업스케일을 피합니다
- wavelet 재구성과 픽셀 확장 전에 원본 영역 선택과 해상도 선택이 결합됩니다
- 충돌 격리 JPEG 2000 워커도 같은 축소 요청을 받고 그에 맞게 더 작은 출력 budget을 사용합니다
- 네이티브 폴백이 여러 codestream tile에 걸친 영역을 처리할 때는 독립적인 tile들이 취소, 워커 수, 출력, 피크 메모리 한도 안에서 동시에 디코딩됩니다
- 병렬 결과는 안정적인 row-major 순서로 합성되고, 작업 budget이 부족하면 투명하게 순차 영역 경로를 선택합니다
- DeviceRGB 또는 DeviceGray의 JPEG 이미지는 region이나 요청 크기가 전체 이미지와 다를 때 축소 DCT 디코더를 거칩니다. 요청을 여전히 커버하는 축소 DCT 스케일로 디코딩한 뒤 region을 요청 크기에 정확히 맞게 리샘플링해 반환합니다
- 그 외 지원 이미지 형식, 그리고 다른 색 공간의 JPEG 이미지는 정확한 영역 디코딩을 유지하며 최종 스케일링은 호출자에게 맡깁니다
- 호출자는 nil이 아닌 반환 bitmap의 소유자이며 반드시 해제해야 합니다
예제
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;