THotPDF.DecodeLoadedImageRegionAtResolution Method
Dekoduje prostokąt we współrzędnych źródła, pozwalając dekoderowi wybrać niższy poziom rozdzielczości, który nadal spełnia żądany rozmiar wyjścia
Deklaracja
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Jednostka
HPDFDoc
Parametry
| Nazwa | Przeznaczenie |
|---|---|
AImageStream | Stream XObject wczytanego obrazu do zdekodowania |
RegionLeft | Włączna lewa współrzędna źródła |
RegionTop | Włączna górna współrzędna źródła |
RegionRight | Wyłączna prawa współrzędna źródła |
RegionBottom | Wyłączna dolna współrzędna źródła |
TargetPixelWidth | Minimalna użyteczna szerokość dekodowania przed końcową skalą renderowania |
TargetPixelHeight | Minimalna użyteczna wysokość dekodowania przed końcową skalą renderowania |
Wartość zwracana
Zwraca świeżo przydzieloną bitmapę dla przyciętego, niepustego regionu albo nil, gdy obrazu lub żądanej geometrii nie da się zdekodować
Dobór rozdzielczości
- JPEG 2000 wybiera największą redukcję o wykładniku potęgi dwójki, przy której zdekodowana szerokość i wysokość pozostają co najmniej równe żądanemu rozmiarowi w pikselach
- Wybór nigdy nie zaniża rozdzielczości żadnego z wymiarów, dzięki czemu unika niepotrzebnego powiększania przed rysowaniem
- Natywny dobór regionu i dobór rozdzielczości są łączone przed rekonstrukcją falkową i rozwinięciem pikseli
- Izolowane od awarii workery JPEG 2000 otrzymują to samo żądanie redukcji i używają proporcjonalnie mniejszego budżetu wyjścia
- Gdy natywna ścieżka zapasowa obsługuje region przecinający wiele kafli codestream, niezależne kafle dekodują współbieżnie w ramach limitów anulowania, liczby workerów, wyjścia i szczytowej pamięci
- Równoległe wyniki są składane w stabilnej kolejności wiersz-główna, a niewystarczający budżet roboczy przezroczyście wybiera sekwencyjną ścieżkę regionu
- Obraz JPEG w DeviceRGB lub DeviceGray, gdy region albo żądany rozmiar różnią się od pełnego obrazu, przechodzi przez dekoder DCT o zmniejszonym rozmiarze: dekoduje w zredukowanej skali DCT, która nadal pokrywa żądanie, i zwraca region przepróbkowany dokładnie do żądanego rozmiaru
- Pozostałe obsługiwane formaty obrazów, a także obrazy JPEG w innych przestrzeniach kolorów, zachowują dokładne dekodowanie regionu i pozostawiają końcowe skalowanie wywołującemu
- Wywołujący jest właścicielem zwróconej, niepustej bitmapy i musi ją zwolnić
Przykład
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;