THotPDF.DecodeLoadedImageRegionAtResolution Method
Декодира правоъгълник в изходни координати, като оставя на декодера да избере по-ниско ниво на резолюция, което все пак удовлетворява искания изходен размер
Декларация
function DecodeLoadedImageRegionAtResolution(
AImageStream: THPDFStreamObject;
RegionLeft, RegionTop, RegionRight, RegionBottom,
TargetPixelWidth, TargetPixelHeight: Integer): TBitmap;
Модул
HPDFDoc
Параметри
| Име | Предназначение |
|---|---|
AImageStream | Stream на заредено XObject изображение за декодиране |
RegionLeft | Включителна лява изходна координата |
RegionTop | Включителна горна изходна координата |
RegionRight | Изключителна дясна изходна координата |
RegionBottom | Изключителна долна изходна координата |
TargetPixelWidth | Минимална полезна декодирана ширина преди финалното мащабиране при изобразяване |
TargetPixelHeight | Минимална полезна декодирана височина преди финалното мащабиране при изобразяване |
Върната стойност
Връща новоразпределен bitmap за ограничения непразен регион или nil, когато изображението или исканата геометрия не могат да бъдат декодирани
Избор на резолюция
- JPEG 2000 избира най-голямото намаление със степен на двойката, при което декодираните ширина и височина и в двете измерения остават поне с искания размер в пиксели
- Изборът никога не понижава резолюцията на нито едно измерение под нужното и по този начин избягва ненужно увеличаване преди чертането
- Нативният избор на регион и изборът на резолюция се комбинират преди вейвлет възстановяването и разширението до пиксели
- Изолираните при crash JPEG 2000 worker-и получават същата заявка за намаление и използват съответно по-малък изходен бюджет
- Когато нативният fallback обработва регион, пресичащ множество codestream плочки, независимите плочки се декодират паралелно в лимитите за отмяна, брой worker-и, изход и пикова памет
- Паралелните резултати се събират в стабилен ред по редове, а недостатъчният работен бюджет прозрачно избира последователния път за обработка на региона
- JPEG в DeviceRGB или DeviceGray минава през DCT декодер с намален размер, когато регионът или исканият размер се различават от цялото изображение: декодира с намалена DCT скала, която все пак покрива заявката, и връща региона преземплиран точно до искания размер
- Останалите поддържани формати изображения, както и JPEG изображения в други цветови пространства, запазват точното декодиране на региона и оставят финалното мащабиране на извиквача
- Извиквачът притежава върнатия ненулев bitmap и трябва да го освободи
Пример
Preview := PDF.DecodeLoadedImageRegionAtResolution(
ImageStream, 0, 0, SourceWidth, SourceHeight, 320, 200);
try
Canvas.StretchDraw(TargetRect, Preview);
finally
Preview.Free;
end;