PDFium Delphi Component Docs

DetectPageSkew Método

Componente: TPdf  ·  Unidade: PDFium
Mede o quanto a página atual está inclinada, como costuma ocorrer em páginas digitalizadas

Syntax

function DetectPageSkew(out Report: TPdfSkewReport): Boolean;

ReportTPdfSkewReport. Recebe SkewAngle em graus (positivo significa inclinação no sentido horário), Confidence de 0 a 1, a SampleWidth e a SampleHeight usadas na detecção, um flag Succeeded e uma ErrorMessage.
ResultBoolean. True quando um ângulo foi medido, correspondendo a Report.Succeeded.

Description

Detecta o ângulo de inclinação renderizando a página em baixa resolução e projetando os pixels de texto sobre ângulos de rotação candidatos; vence o ângulo cuja projeção produz a estrutura de linhas mais nítida. A precisão é de cerca de 0,1 graus

Confidence reflete quanta evidência de linhas de texto a página ofereceu. Uma página de texto corrido pontua alto; uma página com uma única linha ou nenhuma pontua baixo, e uma pontuação baixa deve ser tratada como "nenhuma resposta confiável" em vez de "sem inclinação"

A detecção apenas mede. Para endireitar a página, passe o ângulo negado para uma matriz de rotação e aplique-a com TransformPageContent, ou renderize por meio de RenderPageWithMatrix quando apenas a saída precisa ser corrigida

Example

var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
  ShowMessageFmt('Tilted by %.2f degrees', [Report.SkewAngle]);

See Also

TransformPageContent, RenderPageWithMatrix, ApplyOcrSearchLayer, PageRotation