PDFium Component Docs

ObjectTransparent Eigenschap

Deze API-entry behoudt identifiers, signatures, codeblokken en PDF-termen in hun oorspronkelijke vorm.
Component: TPdf  ·  Unit: PDFium
Geeft aan of een page object deelneemt aan PDF-transparency — via een niet-opaque fill/stroke alpha of via een niet-Normal blend mode — en daarom compositing nodig heeft in plaats van eenvoudige painter's-algorithm rendering

Syntaxis

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

Beschrijving

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

Parameters

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

Opmerkingen

Voorbeeld

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

Zie ook

ObjectCount, ObjectType, ObjectBounds, Transparent