property ObjectTransparent[Index: Integer]: Boolean; // read only
PDF 1.4 introduceerde het Transparency Imaging Model (PDF 32000-1 § 11), waarmee elk page object een graphics-state alpha (ca/CA) en een blend mode (BM in de ExtGState dictionary) kan opgeven. ObjectTransparent geeft True terug als PDFium een van beide op het object bij Index heeft gedetecteerd, wat betekent dat de renderer niet zomaar kan overpainten en een geïsoleerde compositing buffer voor het object moet alloceren
Dit is de per-object tegenhanger van Transparent, die rapporteert of de hele huidige pagina enige transparante content bevat. Gebruik dit wanneer je alleen de kostbare delen van een pagina wilt flattenen, binnenkomende PDFs wilt auditen voor print-shop pipelines die transparency niet begrijpen, of custom rendering wilt versnellen door compositing uit te schakelen voor de meerderheid van de volledig opaque objects
Het resultaat weerspiegelt de eigen graphics state van het object op het moment van invoegen. Het muteren van het object, bijvoorbeeld via native FPDFPageObj_SetFillColor met een niet-255 alpha, verandert de gerapporteerde waarde pas nadat UpdatePage en ReloadPage de gecachte page opnieuw hebben opgebouwd
| Index | Zero-based page-object index, 0 ≤ Index < ObjectCount. |
TrueFalse rapporteren — de property beschrijft het object zelf, niet hoe het met siblings wordt gecompositeerdFPDFPageObj_HasTransparency in en is bewust goedkoop om binnen loops over ObjectCount aan te roepen
// Tel opaque versus transparante objects op de huidige pagina
var I, NOpaque, NAlpha: Integer;
begin
NOpaque := 0; NAlpha := 0;
for I := 0 to Pdf1.ObjectCount - 1 do
if Pdf1.ObjectTransparent[I] then Inc(NAlpha)
else Inc(NOpaque);
Memo1.Lines.Add(Format('opaque=%d, transparent=%d', [NOpaque, NAlpha]));
end;