Napredna semantika upodabljanja

Upodabljanje naložene strani ohrani stanje ugnezdenih Form XObjects, medtem ko uporablja skupine prosojnosti, mehke maske, postopke glifov Type 3 in dekodiranje vidnih območij slik, ki upošteva ločljivost

Črtkane poteze poti

Izvorno izrisovanje poti ohrani popolne vzorce črt in njihovo fazo, vključno z nizi lihe dolžine, delnimi dolžinami in pobarvanimi črtami ničelne dolžine z okroglimi ali kvadratnimi zaključki; vzorec črt se pri vsaki podpoti znova zažene

Poteze enobarvnih likov in obrezi potez vzorcev s prelivi delijo eno omejeno geometrijsko pot črtkanih vzorcev, ohranijo spoje znotraj zveznih pobarvanih odsekov in povežejo pobarvane odseke čez začetno točko zaprte konture

Dolžine črt ohranijo povprečno merilo trenutne transformacije izrisovalnika, razdeljevanje krivulj pa uporabi prilagodljivo sploščevanje v prostoru naprave; polnilo in čakajoče obrezovanje še naprej uporabljata izvirno nerazdeljeno pot

Skupine prosojnosti

Mehke maske

Prenosne in vzorčene funkcije

/TR2 ima prednost pred /TR, ena sama funkcija velja za vse izhodne kanale RGB, polje štirih funkcij pa uporabi prve tri vnose neodvisno in pri tem ohrani vnosa /Identity in /Default

Uporaba novega stanja prenosa zamenja vsak kanal atomsko, zato vnosi identitete ne morejo podedovati iskalnih vrednosti iz prejšnjega grafičnega stanja

Vzorčene funkcije Type 0 podpirajo eno do štiri vhodne in izhodne dimenzije, vrednosti /BitsPerSample 1, 2, 4, 8, 12, 16, 24 in 32, obrnjene ali naprej usmerjene preslikave /Encode, neodvisne obsege /Decode, multilinearno interpolacijo, večdimenzionalno kubično interpolacijo in naravne kubične zlepke za enodimenzionalne podatke /Order 3

Dekodirani vzorčni bajti, preverjene dimenzije, preslikave in kubični odvodi si delijo LRU z osmimi vnosi, omejen na 64 MiB na nit upodabljanja, medtem ko prevelike ali nepravilno oblikovane funkcije spodletijo, ne da bi delno zamenjale aktivno iskalno tabelo prenosa

Halftonske zaslone

Tabele pragov Type 6, Type 10 in Type 16 se izvedejo neposredno z natančnimi dekodiranimi dolžinami, pragovi 16 bitov z velikim koncem, primerjavo aditivnih komponent in kompaktnimi periodičnimi trakovi, ki se izognejo razširitvi poševnih ali dvopravokotnih zaslonov

Slovarji Type 5 izberejo neodvisne zaslone /Red, /Green in /Blue z nadomestnimi prehodi /Gray in obveznim /Default, medtem ko lahko vsak izbrani zaslon preglasi globalno prenosno funkcijo

Preverjeni bajti pragov in njihova normalizirana geometrija si delijo LRU s 64 vnosi, omejen na 64 MiB na upodabljalnik, nepravilno oblikovane dimenzije, prevelike dodelitve, ugnezdeni slovarji Type 5 ali neujemanja dolžin vsebin pa pustijo celotno aktivno stanje zaslona v načinu neprekinjenih tonov

Glifi Type 3

CharProcs Type 3 tečejo skozi celoten pogon operatorjev vsebine s trenutnim obsegom virov slovarja pisave, podporo Form, izrezovanjem, slikami, vzorci in omejeno rekurzijo

d0 in d1 zagotavljata metrike glifov, medtem ko postopek d1 ohrani barvo, ki jo izbere klicatelj, kot zahteva slikovni model PDF

Ponovljeni CharProcs znova uporabijo dekodirane in žetonizirane sezname prikaza, kadar se pisava, glif, linearna matrika naprave in stanje barve ujemajo; prevod ostane dinamičen, zato ponovljeni znaki na različnih položajih delijo en vnos

LRU na upodabljalnik ohrani največ 256 vnosov in 131.072 žetonov, preskoči vsak CharProc nad 16.384 žetoni in poroča o svojem vedenju prek GetLastType3GlyphCacheStats

Izrezana in pomanjšana območja slik

Slikovni XObjects, poravnani z osmi, zahtevajo samo vidne meje vira in posredujejo vidno velikost slikovnih pik naprave v pot dekodiranja

Slika z mehko masko se dekodira v celoti na velikost, na kateri je narisana, njena maska pa na enaki velikosti, zato maska ostane poravnana s sliko, medtem ko izrezovanje omejuje, kaj je pobarvano; maske JPEG uporabljajo dekoder DCT z zmanjšano velikostjo

Pri upodabljanju se dekodirano območje, ki je v obeh smereh vsaj dvakrat večje od narisane velikosti, pred risanjem ali predpomnjenjem s povprečenjem ploščin skrči točno na narisano velikost; velika slika, narisana majhna, se tako umesti v predpomnilnik dekodiranja, zato jo skupina, narisana dvakrat, ali ponovljena stran znova uporabita, njena mehka maska pa se uporabi slikovna pika za slikovno piko na tej velikosti. Maske šablonskih slik ohranijo svojo polno ločljivost, javne metode za dekodiranje območij pa vrnejo svoje dokumentirane velikosti

JPEG 2000 združi nativni API območij dekoderja s stopnjo ločljivosti, ki je potenca števila dva in je izbrana tako, da izpolni obe ciljni dimenziji pred rekonstrukcijo valčkov in razširitvijo rastra

Kodni tokovi JPEG 2000 z naslovljivimi ploščicami lahko dekodirajo tudi eno preverjeno ploščico neposredno prek THPDFJpeg2000Decoder.LoadTileFromByteArray, pri čemer dekoder izpostavi metapodatke mreže ploščic in omejitve izhodnih bajtov

Kadar nativno območje seka več neodvisnih ploščic, LoadRegionFromByteArrayParallel dodeli zasebno stanje OpenJPEG vsakemu delavcu in sestavi dokončane rastre v determinističnem vrstnem redu vrstic; preklic, omejitve izhoda in efektivni proračun največje porabe pomnilnika lahko ustavijo razporejanje ali izberejo zaporedni nadomestni prehod

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

Povezani API-ji