property ObjectTransparent[Index: Integer]: Boolean; // read only
PDF 1.4 a introduit le Transparency Imaging Model (PDF 32000-1 § 11), qui permet à tout objet de page de spécifier une alpha d'état graphique (ca/CA) et un mode de fusion (BM dans le dictionnaire ExtGState). ObjectTransparent renvoie True si PDFium a détecté l'un ou l'autre sur l'objet à Index, ce qui signifie que le rendu ne peut pas simplement repeindre par-dessus et doit allouer un tampon de composition isolé pour l'objet
C'est l'analogue par objet de Transparent, qui indique si la page courante contient du contenu transparent. Utilisez-le lorsque vous voulez aplatir uniquement les portions coûteuses d'une page, auditer les PDF entrants pour des flux d'impression qui ne comprennent pas la transparence ou accélérer le rendu personnalisé en court-circuitant la composition pour la majorité des objets qui sont complètement opaques
Le résultat reflète l'état graphique propre à l'objet au moment de son insertion. Modifier l'objet (par exemple via FPDFPageObj_SetFillColor natif avec une alpha différente de 255) ne change la valeur signalée qu'après que UpdatePage et ReloadPage ont reconstruit la page mise en cache
| Index | Index d’objet de page de base 0, 0 ≤ Index < ObjectCount |
TrueFalse — la propriété décrit l’objet lui-même, pas la façon dont il est composé avec ses frèresFPDFPageObj_HasTransparency de PDFium et est intentionnellement bon marché à appeler dans des boucles sur ObjectCount
// Count opaque vs transparent objects on the current page.
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;