PDFium Delphi Component Docs

ObjectTransparent Egenskap

Component: TPdf  ·  Unit: PDFium
Anger om ett sidobjekt deltar i PDF-transparens — antingen via en fill/stroke-alpha som inte är opak eller via ett blend mode som inte är Normal — och därför behöver komposition i stället för enkel rendering enligt målaralgoritmen

Syntax

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

Description

PDF 1.4 introducerade Transparency Imaging Model (PDF 32000-1 § 11), som låter vilket sidobjekt som helst ange en grafiktillstånds-alpha (ca/CA) och ett blend mode (BM i ExtGState-ordboken). ObjectTransparent returnerar True om PDFium upptäckte någon av dessa på objektet vid Index, vilket betyder att renderaren inte bara kan måla över utan måste allokera en isolerad kompositionsbuffert för objektet

Detta är motsvarigheten per objekt till Transparent, som rapporterar huruvida hela den aktuella sidan innehåller något transparent innehåll. Använd den när du vill platta ut endast de kostsamma delarna av en sida, granska inkommande PDF:er för tryckeripipelines som inte förstår transparens eller snabba upp egen rendering genom att genväga kompositionen för majoriteten objekt som är helt opaka

Resultatet speglar objektets egna grafiktillstånd vid infogningstillfället. Att ändra objektet (till exempel genom inbyggda FPDFPageObj_SetFillColor med en alpha som inte är 255) ändrar det rapporterade värdet först efter att UpdatePage och ReloadPage har byggt om den cachade sidan

Parameters

IndexNollbaserat sidobjektsindex, 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