THotPDF.DecodeLoadedImageRegionAtResolution Method
Afkoder et rektangel i kildekoordinater, men lader afkoderen vælge et lavere opløsningsniveau, som stadig opfylder den ønskede outputstørrelse
Deklaration
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Enhed
HPDFDoc
Parametre
| Navn | Formål |
|---|---|
AImageStream | Indlæst billed-XObject-strøm, der skal afkodes |
RegionLeft | Inklusiv venstre kildekoordinat |
RegionTop | Inklusiv øverste kildekoordinat |
RegionRight | Eksklusiv højre kildekoordinat |
RegionBottom | Eksklusiv nederste kildekoordinat |
TargetPixelWidth | Minimum nyttig afkodet bredde før den endelige renderingsskalering |
TargetPixelHeight | Minimum nyttig afkodet højde før den endelige renderingsskalering |
Returværdi
Returnerer en ny allokeret bitmap for det afgrænsede, ikke-tomme område eller nil, når billedet eller den ønskede geometri ikke kan afkodes
Opløsningsvalg
- JPEG 2000 vælger den største power-of-two-reduktion, hvor både afkodet bredde og højde forbliver mindst den ønskede pixelstørrelse
- Valget underopløser aldrig nogen af dimensionerne og undgår dermed en unødvendig opskalering før tegning
- Valg af naturlig region og valg af opløsning kombineres før wavelet-rekonstruktion og pixel-ekspansion
- Crash-isolerede JPEG 2000-workers modtager samme reduktionsanmodning og bruger et tilsvarende mindre output-budget
- Når naturlig fallback håndterer en region, der skærer flere codestream-tiles, afkodes uafhængige tiles samtidigt inden for grænserne for cancellation, antal workers, output og peak memory
- Parallelle resultater sammensættes i stabil række-major-rækkefølge, og et utilstrækkeligt arbejdsbudget vælger transparent den sekventielle regionsti
- Et JPEG-billede i DeviceRGB eller DeviceGray går gennem en reduceret DCT-afkoder, når regionen eller den ønskede størrelse afviger fra hele billedet: det afkodes ved en reduceret DCT-skala, der stadig dækker ønsket, og returnerer regionen resampleret til præcis den ønskede størrelse
- Andre understøttede billedformater og JPEG-billeder i andre farverum bevarer præcis regionafkodning og overlader eventuel endelig skalering til kalderen
- Kalderen ejer en ikke-nil returneret bitmap og skal frigive den
Eksempel
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;