Napredna semantika renderiranja

Renderiranje učitanih stranica čuva ugniježđeno stanje Form XObjecta dok primjenjuje transparentne grupe, meke maske, Type 3 glif procedure i dekodiranje vidljivog područja slike svjesno razlučivosti

Iscrtkani potezi putanje

Nativno renderiranje putanja čuva kompletne dash nizove i njihovu fazu, uključujući nizove neparne duljine, razlomljene duljine i crtice nulte duljine s okruglim ili kvadratnim završecima; dash uzorak ponovno kreće na svakom podputu

Potezi punom bojom i isječci poteza gradientnim uzorkom dijele jedan ograničeni put dash geometrije, čuvaju spajanja unutar kontinuiranih naslikanih sekcija i spajaju naslikane sekcije preko početne točke zatvorene konture

Dash duljine zadržavaju srednje mjerilo trenutne transformacije renderera, dok rasjedanje krivulja koristi adaptivno poravnjavanje u prostoru uređaja; bojanje ispuna i čekajuće isječkanje i dalje koriste izvornu nerasjedanu putanju

Transparentne grupe

Meke maske

Prijenosne i vzorkovane funkcije

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

Primjena novog prijenosnog stanja atomski zamjenjuje svaki kanal, tako da identity unosi ne mogu naslijediti vrijednosti pretraživanja iz ranijeg stanja grafike

Type 0 vzorkovane funkcije podržavaju jednu do četiri ulazne i izlazne dimenzije, vrijednosti /BitsPerSample 1, 2, 4, 8, 12, 16, 24 i 32, obrnute ili naprijed /Encode mapiranja, neovisne opsege /Decode, multilinearnu interpolaciju, višedimenzionalnu kubičnu interpolaciju i prirodne kubične spline za jednodimenzionalne podatke /Order 3

Dekodirani bajtovi vzorka, potvrđene dimenzije, mapiranja i kubične derivacije dijele LRU s osam unosa ograničen na 64 MiB po niti renderiranja, dok prevelike ili neispravne funkcije ne uspijevaju bez djelomične zamjene aktivne prijenosne tablice pretraživanja

Ekrani za polutone

Type 6, Type 10 i Type 16 nizovi pragova izvršavaju se izravno s točnim dekodiranim duljinama, big-endian 16-bitnim pragovima, usporedbom aditivnih komponenti i kompaktnim periodičnim trakama koje izbjegavaju proširivanje zakrivljenih ili dvopravokutnih ekrana

Type 5 rječnici biraju neovisne /Red, /Green i /Blue ekrane s /Gray i obveznim /Default povratnim opcijama, dok svaki odabrani ekran može nadjačati globalnu prijenosnu funkciju

Potvrđeni bajtovi pragova i njihova normalizirana geometrija dijele LRU sa 64 unosa ograničen na 64 MiB po rendereru, a neispravne dimenzije, prevelike alokacije, ugniježđeni Type 5 rječnici ili nepodudaranja duljine korisnog sadržaja ostavljaju potpuno aktivno stanje ekrana u kontinuiranom tonskom načinu

Type 3 glifovi

Type 3 CharProcs se pokreću kroz puni motor operatora sadržaja s trenutnim opsegom resursa rječnika fonta, podrškom za Formu, izrezivanje, slike, uzorke i ograničenu rekurziju

d0 i d1 pružaju metrike glifa dok d1 procedura zadržava boju koju odabere pozivatelj kako zahtijeva PDF model slikanja

Ponovljeni CharProcs ponovno koriste dekodirane i tokenizirane popise prikaza kada se font, glif, linearna matrica uređaja i stanje boje podudaraju; prijevod ostaje dinamičan tako da ponovljeni znakovi na različitim pozicijama dijele jedan unos

LRU po rendereru zadržava najviše 256 unosa i 131 072 tokena, zaobilazi svaki CharProc iznad 16 384 tokena i izvještava o svom ponašanju kroz GetLastType3GlyphCacheStats

Izrezana i smanjena područja slike

Slika XObjecti s poravnanjem osi zahtijevaju samo vidljive izvorne granice i prosljeđuju vidljivu veličinu piksela uređaja u putanju dekodiranja

Slika s mekom maskom dekodira se cijela u veličini u kojoj se crta, a njena maska u istoj veličini, tako da maska ostane poravnata sa slikom dok isijecanje ograničava što se crta; JPEG maske koriste dekoder smanjenog DCT-a

Pri iscrtavanju, dekodirano područje najmanje dvostruko veće od crtane veličine u oba smjera smanjuje se točno na crtanu veličinu prosječanjem po površini prije nego se crta ili sprema u predmemoriju; velika slika crtana malim tada stane u predmemoriju dekodiranja, pa je grupa nacrtana dvaput ili ponovljena stranica ponovno koriste, a njena meka maska primjenjuje se piksel po piksel u toj veličini. Maske stencil slika zadržavaju punu razlučivost, a javne metode dekodiranja područja vraćaju svoje dokumentirane veličine

JPEG 2000 kombinira nativni API područja dekodera s razinom razlučivosti u potencijama dvojke odabranom da zadovolji obje ciljne dimenzije prije wavelet rekonstrukcije i rasterskog proširivanja

Tile-adresabilni JPEG 2000 kodni tokovi također mogu dekodirati jednu potvrđenu pločicu izravno kroz THPDFJpeg2000Decoder.LoadTileFromByteArray, s metapodacima mreže pločica i ograničenjima izlaznih bajtova izloženim od strane dekodera

Kada nativno područje siječe više neovisnih pločica, LoadRegionFromByteArrayParallel dodjeljuje privatno OpenJPEG stanje po radniku i sastavlja završene rasterske podatke u determinističkom redoslijedu po retcima; otkazivanje, ograničenja izlaza i učinkoviti budget vršne memorije mogu zaustaviti raspoređivanje ili odabrati sekvencijalnu povratnu opciju

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

Povezani API-ji