property ObjectTransparent[Index: Integer]: Boolean;// solo lectura
PDF 1.4 introdujo el Transparency Imaging Model (PDF 32000-1 § 11), que permite a
cualquier objeto de página especificar un alfa de estado gráfico (ca/CA) y un
modo de fusión (BM en el diccionario ExtGState). ObjectTransparent devuelve
True si PDFium detectó cualquiera de estos en el objeto en Index,
lo que significa que el renderizador no puede simplemente repintar y debe asignar un búfer de composición
aislado para el objeto.
Es el análogo por objeto de Transparent, que informa si la página actual entera contiene contenido transparente. Úselo cuando quiera aplanar solo las partes costosas de una página, auditar PDF entrantes para canalizaciones de imprenta que no entienden la transparencia o acelerar el renderizado personalizado cortocircuitando la composición para la mayoría de objetos totalmente opacos.
El resultado refleja el propio estado gráfico del objeto en el momento de inserción. Mutar el
objeto (por ejemplo mediante FPDFPageObj_SetFillColor nativo con un alfa distinto de 255)
solo cambia el valor informado tras que UpdatePage
y ReloadPage hayan reconstruido la página en caché.
| Index | Índice de objeto de página basado en cero, 0 ≤ Index < ObjectCount. |
True.False — la propiedad describe el objeto en sí, no cómo se compone con sus hermanos.FPDFPageObj_HasTransparency de PDFium y es deliberadamente barato de llamar dentro de bucles sobre ObjectCount.
// Contar objetos opacos frente a transparentes en la página actual
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;