PDFium Delphi Component Docs

ObjectTransparent 속성

컴포넌트: TPdf  ·  유닛: PDFium
page object가 PDF transparency에 참여하는지 나타냅니다 — 불투명하지 않은 fill/stroke alpha나 non-Normal blend mode를 사용하면 simple painter's-algorithm rendering 대신 compositing이 필요합니다

Syntax

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

Description

PDF 1.4는 투명성 이미징 모델(PDF 32000-1 § 11)을 도입해 어떤 페이지 객체든 그래픽 상태 alpha(ca/CA)와 블렌드 모드(ExtGState 딕셔너리의 BM)를 지정할 수 있게 했습니다. ObjectTransparent는 PDFium이 Index 위치 객체에서 둘 중 하나를 감지하면 True를 반환하는데, 이는 렌더러가 단순 덧칠로는 부족해 그 객체를 위해 격리된 합성 버퍼를 할당해야 함을 뜻합니다

현재 페이지 전체에 투명 콘텐츠가 있는지 알려 주는 Transparent의 객체별 버전입니다. 페이지에서 비용이 드는 부분만 평면화하거나, 투명성을 이해하지 못하는 인쇄소 파이프라인을 위해 들어오는 PDF를 점검하거나, 완전히 불투명한 대다수 객체의 합성을 건너뛰어 커스텀 렌더링을 빠르게 할 때 사용하세요

결과는 삽입 시점 객체 자신의 그래픽 상태를 반영합니다. 객체를 바꾸는 것(예: 255가 아닌 alpha로 네이티브 FPDFPageObj_SetFillColor 호출)은 UpdatePage와 ReloadPage가 캐시된 페이지를 다시 만든 뒤에야 보고 값에 반영됩니다

Parameters

Index0 기반 페이지 객체 인덱스, 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