function DetectPageSkew(out Report: TPdfSkewReport): Boolean;
| Report | TPdfSkewReport。接收以度為單位的 SkewAngle(正值表示順時針傾斜)、介於 0 到 1 的 Confidence、偵測所用的 SampleWidth 與 SampleHeight、Succeeded 旗標以及 ErrorMessage |
| Result | Boolean。當量測到角度時為 True,與 Report.Succeeded 一致 |
以低解析度繪製頁面,並將文字像素投影到候選旋轉角度來偵測傾斜角;投影能產生最銳利線條結構的角度即為結果。準確度約 0.1 度
Confidence 反映頁面提供的文字行證據多寡。整頁連續文字的分數會很高;只有單行文字或沒有文字的頁面分數很低,而低分應視為「沒有可靠答案」,而非「沒有傾斜」
偵測只負責量測。若要扶正頁面,請將角度取負值代入旋轉矩陣,並以 TransformPageContent 套用;若只需修正輸出結果,可透過 RenderPageWithMatrix 繪製
var Report: TPdfSkewReport;
if Pdf.DetectPageSkew(Report) and (Report.Confidence > 0.5) then
ShowMessageFmt('Tilted by %.2f degrees', [Report.SkewAngle]);