PDFium Component Docs

ObjectTransparent Eigenschaft

Dieser API-Eintrag behält Bezeichner, Signaturen, Codeblöcke und PDF-Begriffe in ihrer Originalform.
Komponente: TPdf  ·  Unit: PDFium
Gibt an, ob ein Seitenobjekt an PDF-Transparenz beteiligt ist — entweder über einen nicht deckenden Füll- oder Strich-Alpha-Wert oder über einen Blendmodus ungleich Normal — und daher Compositing statt einfachem Painter's-Algorithm-Rendering benötigt

Syntax

property ObjectTransparent[Index: Integer]: Boolean; // nur lesbar

Beschreibung

PDF 1.4 führte das Transparency Imaging Model ein (PDF 32000-1 § 11), das jedem Seitenobjekt ermöglicht, ein Graphics-State-Alpha (ca/CA) und einen Blendmodus (BM im ExtGState-Wörterbuch) anzugeben ObjectTransparent gibt True zurück, wenn PDFium eines davon am Objekt bei Index erkannt hat, was bedeutet, dass der Renderer nicht einfach darüberzeichnen kann und einen isolierten Compositing-Puffer für das Objekt anlegen muss

Dies ist das Gegenstück pro Objekt zu Transparent, das meldet, ob die gesamte aktuelle Seite irgendeinen transparenten Inhalt enthält Verwenden Sie es, wenn Sie nur die teuren Teile einer Seite flachrechnen wollen, eingehende PDFs für Druckerei-Pipelines prüfen wollen, die Transparenz nicht verstehen, oder das benutzerdefinierte Rendern beschleunigen wollen, indem Sie das Compositing für die Mehrheit der vollständig deckenden Objekte früh abbrechen

Das Ergebnis spiegelt den eigenen Graphics-State des Objekts zum Einfügezeitpunkt wider Eine Änderung des Objekts, zum Beispiel über natives FPDFPageObj_SetFillColor mit einem Alpha ungleich 255, ändert den gemeldeten Wert erst, nachdem UpdatePage und ReloadPage den zwischengespeicherten Zustand neu aufgebaut haben

Parameter

IndexZero-based page-object index, 0 ≤ Index < ObjectCount.

Hinweise

Beispiel

// Deckende und transparente Objekte auf der aktuellen Seite zählen
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;

Siehe auch

ObjectCount, ObjectType, ObjectBounds, Transparent