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
/Matrixvrednosti Form XObject-a se komponuju sa trenutnom matricom transformacije pre nego što se pokrene sadržaj grupe- Izolovane grupe koriste odvojenu alpha ravan tako da crni sadržaj ostane razlučiv od transparentnih piksela
- Knockout grupe zamenjuju prethodni doprinos grupe u preklapajućim obojenim područjima
- Sadržaj grupe polazi od Normal blend režima: blend režim, konstantna alpha i soft maska na snazi u trenutku
Doprimenjuju se na grupu kao celinu - Grupa nacrtana s drugim blend režimom meša sopstvenu boju i alpha s pozadinom; neizolovana grupa čija sopstvena stanja grafike blenduju normalno crta se na crno i na belo da bi se povratila njena alpha
- Grupe se dele na ograničene pločice od 768 piksela dok GDI iscrtavanje, faza halftona, ugnježđene grupe, soft maske i kompozicija zadržavaju apsolutne koordinate uređaja
- Bajti Forma se dekodiraju i tokenizuju jednom pre izvršavanja pločice, a privremene maske lokalne za pločicu se oslobađaju pre sledeće pločice
- Ugnježđene grupe su podržane s ograničenom rekurzijom i potpunim vraćanjem stanja grafike nakon svakog pozivanja Forma
Soft maske
/S /Alphai/S /Luminositymaske se valuacuju iz maske grupe- Grupa maske crta se s Normal blendovanjem, koji god blend režim nosilo stanje grafike koje postavlja masku
- Luminosity maske razrešavaju
/CStransparentne grupe i teže razrešenu boju PDF DeviceGray aproksimacijom, kao što rade uobičajeni pregledači; postaviteRenderColorimetricLuminosityMasksda umesto toga uzmu kolorimetrijski CIE Y za CIE-zasnovane prostore /BCse validuje prema tačnom broju komponenti blending prostora i obezbeđuje konvertovanu luminosity van obojenog mask sadržaja- Separation i DeviceN bojenje se konvertuje kroz svoj alternativni Lab ili ICCBased prostor tako da spot komponente nikada ne cure u soft masku
/TRtransfer funkcije podržavaju sampled, eksponencijalne, stitching i PostScript kalkulator funkcije kroz deljeni evaluator funkcija/SMask /Nonečisti aktivnu masku, aqiliQčuva stanje maske normalno- Prevedene maske se ponovo koriste samo kada se izvorni rečnik, trenutna matrica transformacije i namera renderovanja svi poklapaju
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;