property ObjectTransparent[Index: Integer]: Boolean; // read only
Il PDF 1.4 ha introdotto il Transparency Imaging Model (PDF 32000-1 § 11), che consente a qualsiasi
oggetto di pagina di specificare un alpha graphics-state (ca/CA) e una blend
mode (BM nel dizionario ExtGState). ObjectTransparent restituisce
True se PDFium ha rilevato una delle due cose sull'oggetto a Index,
il che significa che il renderer non può semplicemente sovrapporre e deve allocare un buffer di compositing
isolato per l'oggetto
È l'analogo per singolo oggetto di Transparent, che riporta se l'intera pagina corrente contiene contenuti trasparenti. Usalo quando vuoi appiattire solo le porzioni costose di una pagina, verificare i PDF in ingresso per pipeline di stampa che non capiscono la trasparenza, o accelerare il rendering personalizzato cortocircuitando il compositing per la maggioranza degli oggetti completamente opachi
Il risultato riflette lo stato grafico proprio dell'oggetto al momento dell'inserimento. Mutare l'
oggetto (per esempio tramite FPDFPageObj_SetFillColor nativo con un alpha diverso da 255
) cambia il valore riportato solo dopo che UpdatePage
e ReloadPage hanno ricostruito la pagina in cache
| Index | Indice dell'oggetto di pagina a base zero, 0 ≤ Index < ObjectCount |
TrueFalse — la proprietà descrive l'oggetto in sé, non come viene composto con i fratelliFPDFPageObj_HasTransparency di PDFium ed è volutamente economico da chiamare dentro cicli su 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;