Gelişmiş Render Semantiği
Yüklenen sayfa renderi, saydamlık grupları, yumuşak maskeler, Type 3 glif yordamları ve çözünürlük farkındalıklı görünür görüntü-bölgesi çözme uygularken iç içe Form XObject durumunu korur
Kesikli yol çizgileri
Yerel yol renderi, tek sayıda elemanlı diziler, kesirli uzunluklar ve yuvarlak ya da kare uçlu sıfır uzunluklu boyalı tireler dahil eksiksiz tire dizilerini ve fazlarını korur; tire deseni her alt yolda yeniden başlar
Düz renkli çizgiler ve degrade desenli çizgi kırpma işlemleri tek bir sınırlı tire geometrisi yolunu paylaşır, sürekli boyalı bölümlerin içindeki birleşimleri korur ve kapalı bir konturun başlangıç noktasında boyalı bölümleri birleştirir
Tire uzunlukları renderleyicinin ortalama geçerli dönüşüm ölçeğini korurken eğri bölme, uyarlanabilir aygıt-uzayı düzleştirmesi kullanır; dolgu boyaması ve bekleyen kırpma, bölünmemiş özgün yolu kullanmaya devam eder
Saydamlık grupları
- Form XObject
/Matrixdeğerleri, grup içeriği çalışmadan önce geçerli dönüşüm matrisiyle birleştirilir - İzole gruplar ayrı bir alfa düzlemi kullanır; böylece siyah içerik saydam piksellerden ayırt edilebilir kalır
- Knockout gruplar, örtüşen boyalı alanlarda önceki grup katkısının yerini alır
- Grup içeriği Normal karışım modundan başlar:
Doanında geçerli olan karışım modu, sabit alfa ve yumuşak maske grubun bütününe uygulanır - Başka bir karışım moduyla boyanan grup kendi rengini ve alfasını arka planla karıştırır; kendi grafik durumları normal şekilde karışan izole olmayan bir grup, alfasını kurtarmak için siyah üzerine ve beyaz üzerine çizilir
- Gruplar, GDI boyama, yarım ton evresi, iç içe gruplar, yumuşak maskeler ve kompozit mutlak aygıt koordinatlarını korurken sınırlı 768 piksellik karolara bölünür
- Form baytları karo çalıştırmasından önce bir kez çözülür ve jetonlaştırılır ve geçici karo-yerel maskeler bir sonraki karodan önce serbest bırakılır
- İç içe gruplar, sınırlı özyineleme ve her Form çağrısından sonra eksiksiz grafik durumu geri yükleme ile desteklenir
Yumuşak maskeler
/S /Alphave/S /Luminositymaskeleri maske grubundan değerlendirilir- Maske grubu, maskeyi ayarlayan grafik durumunun taşıdığı karışım modu ne olursa olsun Normal karışımla çizilir
- Luminosity maskeler, saydamlık grubu
/CSdeğerini çözer ve çözülen rengi yaygın görüntüleyicilerin yaptığı gibi PDF DeviceGray yaklaşımıyla tartar; CIE tabanlı uzaylar için bunun yerine kolorimetrik CIE Y almak üzereRenderColorimetricLuminosityMasksdeğerini ayarlayın /BC, tam karışım-uzayı bileşen sayısına karşı doğrulanır ve boyalı maske içeriği dışına dönüştürülen luminosity değerini sağlar- Separation ve DeviceN boyası, spot bileşenlerin asla bir yumuşak maskeye sızmaması için alternatif Lab veya ICCBased uzayı üzerinden dönüştürülür
/TRtransfer işlevleri, paylaşılan işlev değerlendiricisi üzerinden örneklenmiş, üstel, dikişli ve PostScript hesap makineli işlevleri destekler/SMask /Noneetkin maskeyi temizler veqveyaQmaske durumunu normal şekilde korur- Derlenen maskeler yalnızca kaynak sözlüğü, geçerli dönüşüm matrisi ve render amacı tamamen eşleştiğinde yeniden kullanılır
Transfer ve örneklenmiş işlevler
/TR2, /TR üzerinde öncelik alır, tek bir işlev her RGB çıktı kanalına uygulanır ve dört işlevli bir dizi ilk üç girdisini bağımsız olarak uygularken /Identity ve /Default girdilerini korur
Yeni bir transfer durumu uygulamak her kanalı atomik olarak değiştirir; böylece kimlik girdileri daha önceki bir grafik durumundan arama değerlerini miras alamaz
Type 0 örneklenmiş işlevler bir ila dört giriş ve çıkış boyutunu, /BitsPerSample değerleri 1, 2, 4, 8, 12, 16, 24 ve 32'yi, ters veya ileri /Encode eşlemelerini, bağımsız /Decode aralıklarını, çok doğrusal enterpolasyonu, çok boyutlu kübik enterpolasyonu ve tek boyutlu /Order 3 verisi için doğal kübik spline'ları destekler
Çözülen örnek baytları, doğrulanan boyutlar, eşlemeler ve kübik türevler, render iş parçacığı başına 64 MiB ile sınırlı sekiz girdilik bir LRU paylaşırken, aşırı büyük veya hatalı işlevler etkin transfer arama tablosunu kısmen değiştirmeden başarısız olur
Yarım ton ekranları
Type 6, Type 10 ve Type 16 eşik dizileri doğrudan kesin çözülmüş uzunluklarla, büyük endian 16 bit eşiklerle, toplamsal bileşen karşılaştırmasıyla ve açılı veya iki dikdörtgenli ekranları genişletmekten kaçınan kompakt periyodik şeritlerle çalıştırılır
Type 5 sözlükleri, /Gray ve gerekli /Default geri dönüşleriyle bağımsız /Red, /Green ve /Blue ekranlarını seçerken, seçilen her ekran genel transfer işlevini geçersiz kılabilir
Doğrulanan eşik baytları ve normalleştirilmiş geometrileri, renderleyici başına 64 MiB ile sınırlı 64 girdilik bir LRU paylaşır ve hatalı boyutlar, aşırı büyük tahsisler, iç içe Type 5 sözlükleri veya yük uzunluğu uyumsuzlukları tam etkin ekran durumunu sürekli ton modunda bırakır
Type 3 glifler
Type 3 CharProc'lar, font sözlüğünün geçerli kaynak kapsamı, Form desteği, kırpma, görüntüler, desenler ve sınırlı özyineleme ile eksiksiz içerik işleççi motoru üzerinden çalışır
d0 ve d1 glif metrikleri sağlarken, bir d1 yordamı PDF görüntüleme modelinin gerektirdiği gibi çağıran tarafından seçilen rengi korur
Yinelenen CharProc'lar, font, glif, doğrusal aygıt matrisi ve renk durumu eşleştiğinde çözülen ve jetonlaştırılan görüntüleme listelerini yeniden kullanır; dönüşüm dinamik kalır; böylece farklı konumlardaki yinelenen karakterler tek bir girdi paylaşır
Renderleyici başına LRU en fazla 256 girdi ve 131.072 jeton tutar, 16.384 jeton üzerindeki herhangi bir CharProc'u atlar ve davranışını GetLastType3GlyphCacheStats aracılığıyla raporlar
Kırpılmış ve küçültülmüş görüntü bölgeleri
Eksen hizalı görüntü XObject'leri yalnızca görünür kaynak sınırlarını ister ve görünür aygıt-piksel boyutunu çözme yoluna geçirir
Yumuşak maskeli bir görüntü, çizildiği boyutta bütün olarak çözülür ve maskesi aynı boyutta çözülür; böylece kırpma neyin boyandığını sınırlarken maske görüntüyle hizalı kalır; JPEG maskeleri küçültülmüş boyutlu DCT çözücüyü kullanır
Render sırasında, her iki yönde de çizilen boyutun en az iki katı olan bir çözülmüş bölge, çizilmeden veya önbelleğe alınmadan önce alan ortalamasıyla tam olarak çizilen boyuta küçültülür; böylece küçük çizilen büyük bir görüntü çözme önbelleğine sığar, iki kez çizilen bir grup veya yinelenen bir sayfa onu yeniden kullanır ve yumuşak maskesi o boyutta piksel piksel uygulanır. Stencil görüntü maskeleri tam çözünürlüklerini korur ve genel bölge-çözme yöntemleri belgelenmiş boyutlarını döndürür
JPEG 2000, dalgacık yeniden yapılandırma ve raster genişletmeden önce her iki hedef boyutu da karşılamak üzere seçilen ikinin kuvveti bir çözünürlük düzeyiyle çözücünün yerel bölge API'sini birleştirir
Karo adreslenebilir JPEG 2000 kod akışları, karo ızgara meta verisi ve çıktı bayt sınırları çözücü tarafından açığa çıkarılırken THPDFJpeg2000Decoder.LoadTileFromByteArray aracılığıyla doğrulanmış tek bir karoyu doğrudan çözebilir
Yerel bir bölge birden çok bağımsız karoyla kesiştiğinde, LoadRegionFromByteArrayParallel işçi başına özel OpenJPEG durumu atar ve tamamlanan rasterları deterministik satır-major sırada birleştirir; iptal, çıktı sınırları ve etkin en yüksek bellek bütçesi zamanlamayı durdurabilir veya sıralı geri dönüşü seçebilir
Region := PDF.DecodeLoadedImageRegion(ImageStream, 128, 64, 640, 480);
try
Canvas.Draw(0, 0, Region);
finally
Region.Free;
end;