THotPDF.DecodeLoadedImageRegionAtResolution-metoden
Avkodar en rektangel i källkoordinater samtidigt som avkodaren får välja en lägre upplösningsnivå som fortfarande uppfyller den begärda utdatastorleken
Deklaration
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Enhet
HPDFDoc
Parametrar
| Namn | Syfte |
|---|---|
AImageStream | Inläst bild-XObject-ström att avkoda |
RegionLeft | Inklusiv vänster källkoordinat |
RegionTop | Inklusiv övre källkoordinat |
RegionRight | Exklusiv höger källkoordinat |
RegionBottom | Exklusiv nedre källkoordinat |
TargetPixelWidth | Minsta användbara avkodade bredd före slutlig renderingsskala |
TargetPixelHeight | Minsta användbara avkodade höjd före slutlig renderingsskala |
Returvärde
Returnerar en nyligen allokerad bitmapp för den klampade icke-tomma regionen, eller nil när bilden eller den begärda geometrin inte kan avkodas
Upplösningsval
- JPEG 2000 väljer den största tvåpotensreduktion vars avkodade bredd och höjd båda fortfarande är minst den begärda pixelstorleken
- Valet underupplöser aldrig någon dimension och undviker därför en onödig uppskalning före ritning
- Inbyggt regionval och upplösningsval kombineras före wavelet-rekonstruktion och pixelexpansion
- Kraschisolerade JPEG 2000-arbetare får samma reduktionsbegäran och använder en motsvarande mindre utdatabudget
- När inbyggd fallback hanterar en region som korsar flera kodströms-tiles avkodas oberoende tiles samtidigt inom gränserna för avbrytning, arbetarantal, utdata och toppminne
- Parallella resultat komponeras i stabil rad-major-ordning och otillräcklig arbetsbudget väljer transparent den sekventiella regionsökvägen
- En JPEG-bild i DeviceRGB eller DeviceGray går genom en DCT-avkodare med reducerad storlek när regionen eller den begärda storleken skiljer sig från hela bilden: den avkodar i en reducerad DCT-skala som fortfarande täcker begäran och returnerar regionen omsampad till exakt den begärda storleken
- Andra stödda bildformat, och JPEG-bilder i andra färgrymder, bevarar exakt regionsavkodning och lämnar eventuell slutlig skalning till anroparen
- Anroparen äger en icke-nil returnerad bitmapp och måste frigöra den
Exempel
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;