Metoda THotPDF.DecodeLoadedImageRegionAtResolution
Decodifică un dreptunghi în coordonate sursă, permițând decodorului să aleagă un nivel de rezoluție mai mic care satisface în continuare dimensiunea de ieșire solicitată
Declarație
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Unitate
HPDFDoc
Parametri
| Nume | Scop |
|---|---|
AImageStream | Loaded image XObject stream to decode |
RegionLeft | Inclusive left source coordinate |
RegionTop | Inclusive top source coordinate |
RegionRight | Exclusive right source coordinate |
RegionBottom | Exclusive bottom source coordinate |
TargetPixelWidth | Minimum useful decoded width before final rendering scale |
TargetPixelHeight | Minimum useful decoded height before final rendering scale |
Valoare de întoarcere
Returnează un bitmap nou alocat pentru regiunea nevidă, ajustată la limite, sau nil când imaginea ori geometria solicitată nu poate fi decodată
Resolution selection
- JPEG 2000 selectează cea mai mare reducere putere a lui doi a cărei lățime și înălțime decodate rămân ambele cel puțin dimensiunea de pixeli solicitată
- Selecția nu subrezolvă niciodată vreuna dintre dimensiuni și evită astfel un upscale inutil înainte de desenare
- Selecția regiunii native și selecția rezoluției sunt combinate înainte de reconstrucția wavelet și expansiunea pixelilor
- Worker-ii JPEG 2000 izolați împotriva blocărilor primesc aceeași cerere de reducere și folosesc un buget de ieșire corespunzător mai mic
- Când fallback-ul nativ tratează o regiune care intersectează mai multe tile-uri ale codestream-ului, tile-urile independente sunt decodate concurent, în limitele de anulare, număr de workeri, ieșire și memorie de vârf
- Rezultatele paralele sunt compuse în ordine stabilă majoră pe rânduri, iar bugetul de lucru insuficient selectează transparent calea secvențială de regiune
- Un JPEG în DeviceRGB sau DeviceGray trece printr-un decodor DCT cu dimensiune redusă când regiunea sau dimensiunea cerută diferă de imaginea completă: decodează la o scală DCT redusă care acoperă totuși cererea și returnează regiunea reeșantionată exact la dimensiunea cerută
- Alte formate de imagini acceptate, și imaginile JPEG în alte spații de culoare, păstrează decodarea exactă a regiunii și lasă orice scalare finală apelantului
- Apelantul deține bitmap-ul returnat non-nil și trebuie să îl elibereze
Exemplu
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;