PDFium Delphi Component Docs

ObjectTransparent Propriété

Composant: TPdf  ·  Unit: PDFium
Indique si un objet de page participe à la transparence PDF — soit via un alpha de remplissage/contour non opaque, soit via un mode de fusion non Normal — et nécessite donc une composition plutôt qu’un simple rendu d’algorithme du peintre

Syntax

property ObjectTransparent[Index: Integer]: Boolean; // read only

Description

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

Parameters

IndexIndex d’objet de page de base 0, 0 ≤ Index < ObjectCount

Remarks

Example

// 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;

See Also

ObjectCount, ObjectType, ObjectBounds, Transparent