Napredna semantika renderovanja

Renderovanje učitane stranice čuva ugnježđeno stanje Form XObject-a dok primenjuje transparentne grupe, soft maske, procedure glifova tipa 3 i dekodiranje vidljivog područja slike svesno rezolucije

Isprekidani potezi putanja

Izvorno renderovanje putanja čuva kompletne nizove crtica i njihovu fazu, uključujući nizove neparne dužine, razlomljene dužine i crtice nulte dužine sa round ili square završecima; obrazac crtica se restartuje na svakoj podputanji

Potezi pune boje i isecanje poteza gradijentnim obrascem dele jedan ograničeni tok geometrije crtica, zadržavaju spojeve unutar kontinuirano nacrtanih sekcija i spajaju nacrtane sekcije preko početne tačke zatvorene konture

Dužine crtica zadržavaju srednju skalu trenutne transformacije renderera, dok se deljenje krivih oslanja na adaptivno spljoštavanje u prostoru uređaja; popuna i zakazano isecanje i dalje koriste originalnu nepodeljenu putanju

Transparentne grupe

Soft maske

Transfer i sampled funkcije

/TR2 ima prednost nad /TR, jedna funkcija se primenjuje na svaki izlazni RGB kanal, a niz od četiri funkcije primenjuje svoja prva tri unosa nezavisno dok čuva /Identity i /Default unose

Primena novog transfer stanja zamenjuje svaki kanal atomski, pa identitet unosi ne mogu da naslede vrednosti pretraživanja iz ranijeg stanja grafike

Type 0 sampled funkcije podržavaju od jedne do četiri ulazne i izlazne dimenzije, /BitsPerSample vrednosti 1, 2, 4, 8, 12, 16, 24 i 32, obrnute ili normalne /Encode mapiranje, nezavisne /Decode opsege, multilinearnu interpolaciju, multidimenzionalnu kubnu interpolaciju i prirodne kubne splajne za jednodimenzionalne /Order 3 podatke

Dekodirani uzorak bajtova, validirane dimenzije, mapiranja i kubni izvodi dele LRU sa osam unosa ograničen na 64 MiB po niti renderovanja, dok prevelike ili neispravne funkcije ne uspevaju bez delimične zamene aktivne transfer lookup tabele

Halftone ekrani

Type 6, Type 10 i Type 16 pragovni nizovi izvršavaju se direktno s tačnim dekodiranim dužinama, big-endian 16-bitnim pragovima, poređenjem aditivne komponente i kompaktnim periodičnim trakama koje izbegavaju proširivanje ugnutih ili dvopravougaonih ekrana

Type 5 rečnici biraju nezavisne /Red, /Green i /Blue ekrane sa /Gray i obaveznim /Default rezervama, dok svaki odabrani ekran može da pregazi globalnu transfer funkciju

Validirani bajtovi pragova i njihova normalizovana geometrija dele LRU sa 64 unosa ograničen na 64 MiB po rendereru, a neispravne dimenzije, prevelike alokacije, ugnježđeni Type 5 rečnici ili neusklađenost dužine sadržaja ostavljaju kompletno aktivno stanje ekrana u kontinualno-tonskom režimu

Glyfovi tipa 3

Type 3 CharProcs prolaze kroz kompletni motor operatora sadržaja sa trenutnim opsegom resursa rečnika fonta, podrškom Forma, isecanjem, slikama, obrascima i ograničenom rekurzijom

d0 i d1 obezbeđuju metrike glifa dok d1 procedura zadržava boju koju bira pozivalac kako zahteva PDF model snimanja

Ponovljeni CharProcs ponovo koriste dekodirane i tokenizovane liste prikaza kada se font, glif, linearna matrica uređaja i stanje boje poklapaju; prevod ostaje dinamičan tako da ponovljeni znaci na različitim pozicijama dele jedan unos

Per-renderer LRU zadržava najviše 256 unosa i 131 072 tokena, zaobilazi bilo koji CharProc iznad 16 384 tokena i izveštava o svom ponašanju kroz GetLastType3GlyphCacheStats

Oisečena i smanjena područja slika

Osno poravnati Image XObject-i zahtevaju samo vidljive izvorne granice i prosleđuju veličinu vidljivog piksela uređaja u putanju dekodiranja

Slika sa soft maskom dekodira se cela na veličini na koju se crta, a njena maska na istoj veličini, tako da maska ostane poravnata sa slikom dok isecanje ograničava šta se crta; JPEG maske koriste DCT dekoder umanjene veličine

Pri renderovanju, dekodirano područje najmanje dvostruko veće od nacrtane veličine u oba smera skuplja se na tačno nacrtanu veličinu usrednjavanjem površine pre nego što se nacrta ili kešira; velika slika nacrtana malo tada staje u keš dekodiranja, tako da grupa nacrtana dvaput ili ponovljena stranica ponovo koriste, a njena soft maska primenjuje se piksel po piksel na toj veličini. Stencil maske slika zadržavaju svoju punu rezoluciju, a javne metode dekodiranja područja vraćaju svoje dokumentovane veličine

JPEG 2000 kombinuje nativni region API dekodera sa nivoom rezolucije snage dva odabranim da zadovolji obe ciljne dimenzije pre rekonstrukcije talasa i rasterskog proširivanja

Tile-addressable JPEG 2000 kodni tokovi mogu takođe da dekodiraju jednu validiranu pločicu direktno kroz THPDFJpeg2000Decoder.LoadTileFromByteArray, s metapodacima rešetke pločica i ograničenjima izlaznih bajtova izloženim od strane dekodera

Kada nativni region preseca više nezavisnih pločica, LoadRegionFromByteArrayParallel dodeljuje privatno OpenJPEG stanje po radniku i komponuje završene rastre u determinističkom redosledu redova; otkazivanje, ograničenja izlaza i efikasan budžet vršne memorije mogu da zaustave raspoređivanje ili odaberu sekvencijalni rezervni put

Region := PDF.DecodeLoadedImageRegion(ImageStream, 128, 64, 640, 480);
try
  Canvas.Draw(0, 0, Region);
finally
  Region.Free;
end;

Povezani API-ji