Edistyneet hahmontamisen semantiikat

Ladattujen sivujen hahmontaminen säilyttää sisäkkäisen Form XObject -tilan soveltaessaan läpinäkyvyysryhmiä, pehmeitä maskeja, Type 3 -glyfiproseduureja ja tarkkuustietoista näkyvän kuvausalueen purkamista

Katkoviivalla piirretyt polut

Natiivi polkuhahmontaminen säilyttää täydelliset katkoviivataulukot ja niiden faasin, mukaan lukien parittoman pituiset taulukot, murtolukupituudet ja nollapituiset piirretyt katkoviivat pyöreillä tai neliökärjillä; katkoviivakuvio alkaa alusta jokaisella alipolulla

Yksiväriset vedot ja liukuvärikuvion viivaleikkaukset jakavat yhden rajatun katkoviivageometriapolin, säilyttävät liitokset jatkuvien piirrettyjen osien sisällä ja liittävät piirretyt osat suljetun konttuurin aloituspisteen yli

Katkoviivapituudet säilyttävät hahmontajan keskimääräisen nykyisen muunnosmittakaavan, kun taas käyrien pilkkominen käyttää adaptiivista laitesuoraan litistystä; täyttömaalaus ja odottava rajaus jatkuvat alkuperäisellä pilkkomattomalla polulla

Läpinäkyvyysryhmät

Pehmeät maskit

Siirto- ja näytteistetyt funktiot

/TR2 on etusijalla /TR-arvoon nähden, yksi funktio soveltuu jokaiseen RGB-tulostuskanavaan, ja neljän funktion taulukko soveltaa kolmea ensimmäistä merkintäänsä itsenäisesti säilyttäen /Identity- ja /Default-merkinnät

Uuden siirtotilan soveltaminen korvaa jokaisen kanavan atomisesti, joten identiteettimerkinnät eivät voi periä hakutaulukon arvoja aiemmasta grafiikkatilasta

Tyypin 0 näytteistetyt funktiot tukevat yhtä–neljää tulo- ja lähtöulottuvuutta, /BitsPerSample-arvoja 1, 2, 4, 8, 12, 16, 24 ja 32, käännettyjä tai eteenpäin suuntautuvia /Encode-kuvauksia, itsenäisiä /Decode-alueita, multilineaarista interpolaatiota, moniulotteista kuutiointerpolaatiota ja luonnollisia kuutiosplaineja yksiulotteiselle /Order 3 -dataille

Puretut näytetavut, vahvistetut ulottuvuudet, kuvaukset ja kuutioderivaatat jakavat kahdeksanmerkintäisen LRU-välimuistin, joka on rajattu 64 MiB:hen hahmontussäiettä kohden, kun taas ylisuuret tai virheelliset funktiot epäonnistuvat korvaamatta aktiivista siirron hakutaulukkoa osittain

Halftone-näytöt

Tyypin 6, 10 ja 16 kynnystaulukot suoritetaan suoraan tarkalla puretulla pituudella, isoalkuisilla 16-bittisillä kynnyksillä, additiivisella komponenttivertaululla ja tiiviillä jaksollisilla kaistoilla, jotka välttävät kulmikkaiden tai kaksisuorakulmaisten näyttöjen paisuttamisen

Tyypin 5 sanakirjat valitsevat itsenäiset /Red-, /Green- ja /Blue-näytöt /Gray- ja vaadituilla /Default-varavaihtoehdoilla, kun taas jokainen valittu näyttö voi ohittaa globaalin siirtofunktion

Vahvistetut kynnystavut ja niiden normalisoitu geometria jakavat 64-merkintäisen LRU-välimuistin, joka on rajattu 64 MiB:hen renderöijää kohden, ja virheelliset ulottuvuudet, ylisuuret varaukset, sisäkkäiset tyypin 5 sanakirjat tai hyötykuorman pituusepäyhteydet jättävät täydellisen aktiivisen näyttötilan jatkuvatoimiseen sävytilaan

Type 3 -glyfit

Type 3 -CharProsit suoritetaan koko sisältöoperaattorimoottorin läpi fonttisanakirjan nykyisen resurssikontekstin, Form-tuen, leikkauksen, kuvien, kuvioiden ja rajatun rekursion avulla

d0 ja d1 tarjoavat glyfimetriikat, kun taas d1-proseduuri pitää soittajan valitseman värin PDF-kuvantamismallin vaatimusten mukaisesti

Toistuvat CharProsit käyttävät uudelleen purettuja ja tokenisoituja näyttölistoja, kun fontti, glyfi, lineaarinen laitematriisi ja väritila täsmäävät; siirto pysyy dynaamisena, joten toistetut merkit eri sijainneissa jakavat yhden merkinnän

Renderöijäkohtainen LRU säilyttää enintään 256 merkintää ja 131 072 tokenia, ohittaa mahdolliset CharProsit, jotka ylittävät 16 384 tokenia, ja raportoi käyttäytymisensä GetLastType3GlyphCacheStats-metodin kautta

Leikatut ja pienennetyt kuvausalueet

Akselisuuntaiset kuvan XObjectit pyytävät vain näkyvät lähderajat ja välittävät näkyvän laitekuvapikselikoon purkupolkuun

Pehmeän maskin sisältävä kuva puretaan kokonaisuudessaan sillä koolla, jossa se piirretään, ja sen maski samassa koossa, joten maski pysyy kuvan kanssa linjassa, kun leikkaus rajoittaa maalattavaa; JPEG-maskit käyttävät pienennetyn DCT:n dekooderia

Renderöitäessä purettu alue, joka on molemmissa suunnissa vähintään kaksi kertaa piirrettyä kokoa suurempi, pienennetään aluekeskiarvoilla täsmälleen piirrettyyn kokoon ennen piirtämistä tai välimuistiin vientiä; suuri kuva, joka piirretään pienenä, mahtuu tällöin purkuvälimuistiin, joten kahdesti piirretty ryhmä tai toistuva sivu käyttää sitä uudelleen, ja sen pehmeä maski sovelletaan pikseli pikseliltä kyseisessä koossa. Stencil-kuvamaskit säilyttävät täyden resoluutionsa, ja julkiset aluepurkumenetelmät palauttavat dokumentoidut kokonsa

JPEG 2000 yhdistää dekooderin natiivin alue-API:n ja tehotason kaksi potenssiksi valitun tarkkuustason, joka täyttää molemmat kohdeulottuvuudet ennen aallokerekonstruktiota ja rasterilaajennusta

Laattaosoitteiset JPEG 2000 -koodivirrat voivat purkaa myös yhden vahvistetun laatan suoraan THPDFJpeg2000Decoder.LoadTileFromByteArray-metodin kautta, ja laattahilan metadata sekä tulostetavarajat paljastuvat dekooderin kautta

Kun natiivi alue leikkaa useita itsenäisiä laattoja, LoadRegionFromByteArrayParallel määrittää yksityisen OpenJPEG-tilan työntekijää kohden ja kokoaa valmiit rasterit deterministisessä rivi-pääjärjestyksessä; peruutus, tuoterajat ja tehokas huippumuistibudjetti voivat pysäyttää ajoituksen tai valita peräkkäisen varavaihtoehdon

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

Liittyvät API:t