如何使用 IronOCR 在 C# 中讀取照片
IronOCR 的 ReadPhoto 方法可從 TIFF 和 GIF 等複雜圖片格式中擷取文字,並提供包含文字區域與信心分數的結構化結果,專為需要精準 OCR 處理的高品質掃描文件所優化。
在處理大量文件時,尤其是 TIFF 檔案這類掃描圖像,手動提取文字不僅耗時,且容易出錯。 光學字元辨識(OCR)可自動化此流程,將圖像中的文字轉換為數位資料。 OCR 技術能處理掃描文件和照片等複雜圖像,並將其轉化為可搜尋、可編輯的文字。 這能加速文件處理並確保資料擷取的準確性。
針對 TIFF 和 GIF 等格式使用 OCR 技術,即使面對檔案大小、色彩深度或壓縮等挑戰,仍能快速將大量資料數位化。 透過 IronOCR 的 ReadPhoto 功能,開發人員可從圖像中擷取文字,並執行關鍵字搜尋或將掃描資料轉換為可搜尋 PDF 等進階操作。 這項技術能為處理法律文件、檔案或收據等、且高效資料檢索至關重要的產業帶來助益。
本教學示範如何使用 ReadPhoto 以及操作 results 物件。 我們將討論何時應使用 ReadPhoto 取代 IronOCR 的標準 Read。 若需進行一般性的影像處理,建議探索各種影像格式的讀取方式。
若要使用此功能,請安裝 IronOcr.Extension.AdvancedScan 套件。
快速入門:使用 ReadPhoto 從複雜圖片中擷取文字
快速上手:在載入您影像畫面的 OcrInput 上使用 IronOCR 的 ReadPhoto 方法,即可擷取所有文字與區域。 它針對 TIFF、GIF 及類似的照片格式進行了優化。
簡化工作流程(5 個步驟)
- 下載用於讀取照片的 C# 函式庫
- 匯入圖片以進行處理
- 請根據圖片類型選用適當的匯入方式
- 使用
ReadPhoto方法從圖片中提取資料 - 透過存取 OcrPhotoResult 屬性來檢視及處理已擷取的資料
如何使用 ReadPhoto 從 TIFF 圖像中擷取文字?
使用 IronOCR 讀取 TIFF 和 GIF 等高品質照片格式非常簡單。 首先,建立一個 OcrInput 變數,並使用 LoadImageFrame 載入圖片。 接著使用 ReadPhoto 方法來取得結果。 多頁 TIFF OCR 教學指南提供了更多多頁文件的範例。
- TIFF 包含多個影像幀; 必須使用
PageNumber參數,且採用零起始索引。 - 此方法目前支援英語、中文、日語、韓語及拉丁字母。
- 在 .NET Framework 上使用進階掃描功能需具備 x64 架構。
)}]
我應該使用哪種輸入格式?
由於瀏覽器不原生支援 TIFF 格式,下載 TIFF 輸入檔。 下方顯示的版本已轉換為 WEBP 格式。

如何實作 ReadPhoto 方法?
此實作範例展示如何從 TIFF 影像中擷取文字與區域資訊。 如需更多範例,請參閱我們的照片讀取程式碼範例。
:path=/static-assets/ocr/content-code-examples/how-to/read-photo-read-photo.cs
using IronOcr;
using IronSoftware.Drawing;
using System;
// Instantiate OCR engine
var ocr = new IronTesseract();
using var inputPhoto = new OcrInput();
inputPhoto.LoadImageFrame("ocr.tiff", 0);
// Read photo
OcrPhotoResult result = ocr.ReadPhoto(inputPhoto);
// Index number refer to region order in the page
int number = result.TextRegions[0].PageNumber;
// Extract the text in the first region
string textinregion = result.TextRegions[0].TextInRegion;
//Extract the co_ordinates of the first text region
Rectangle region = result.TextRegions[0].Region;
var output = $"Text in First Region: {textinregion}\n"
+ $"Text Region:\n"
+ $"Starting X: {region.X}\n"
+ $"Starting Y: {region.Y}\n"
+ $"Region Width: {region.Width}\n"
+ $"Region Height: {region.Height}\n"
+ $"Result Confidence: {result.Confidence}\n\n"
+ $"Full Scnned Photo Text: {result.Text}";
Console.WriteLine(output);
Imports Microsoft.VisualBasic
Imports IronOcr
Imports IronSoftware.Drawing
Imports System
' Instantiate OCR engine
Private ocr = New IronTesseract()
Private inputPhoto = New OcrInput()
inputPhoto.LoadImageFrame("ocr.tiff", 0)
' Read photo
Dim result As OcrPhotoResult = ocr.ReadPhoto(inputPhoto)
' Index number refer to region order in the page
Dim number As Integer = result.TextRegions(0).PageNumber
' Extract the text in the first region
Dim textinregion As String = result.TextRegions(0).TextInRegion
'Extract the co_ordinates of the first text region
Dim region As Rectangle = result.TextRegions(0).Region
Dim output = $"Text in First Region: {textinregion}" & vbLf & $"Text Region:" & vbLf & $"Starting X: {region.X}" & vbLf & $"Starting Y: {region.Y}" & vbLf & $"Region Width: {region.Width}" & vbLf & $"Region Height: {region.Height}" & vbLf & $"Result Confidence: {result.Confidence}" & vbLf & vbLf & $"Full Scnned Photo Text: {result.Text}"
Console.WriteLine(output)
OcrPhotoResult 提供哪些功能?

OcrPhotoResult 類別提供了用於分析擷取文字的關鍵屬性。 有關處理 OCR 結果的詳細資訊,請參閱我們的《資料輸出與結果處理指南》。
Text:從 OCR 輸入中擷取的文字。
Confidence:統計準確度信心值(0-1 量表,1 為最高)。 進一步了解結果信心分數。
TextRegions:包含位置資料的文字區域清單。 類似於為目標擷取定義 OCR 區域。
何時應使用 ReadPhoto 而非 Read?
ReadPhoto 與標準 Read 之間的主要差異在於 result 物件及支援的檔案格式。 LoadImageFrame 僅接受 TIFF 和 GIF 格式,不支援 JPEG 等格式。 ReadPhoto 專為複雜的圖像格式所優化,而標準的 Read 則適用於較簡單的圖像及一般文字擷取任務。
為什麼 ReadPhoto 只支援 TIFF 和 GIF 格式?
TIFF 是一種無損格式,可將多頁內容與圖框壓縮為單一檔案。它常用於儲存高品質的多圖像檔案,例如法律文件和醫療影像。 由於其複雜度高於 JPEG,因此需要採用不同的方法進行文字擷取。 透過 Professional 的處理方式,確保採用專業級影像格式以獲得最佳效果。
TIFF 圖像採用不同的壓縮方法,因此 IronOCR 運用專用演算法來解讀文字。 ReadPhoto 中的進階演算法能處理 TIFF 壓縮特性,確保能從複雜的多層次文件中精準擷取內容。
以下是 TIFF 與 JPEG 格式的比較:
| 功能 | TIFF(標記圖像檔案格式) | JPG/JPEG (聯合攝影專家組) |
|---|---|---|
| 壓縮 | 無損或未壓縮(保留品質) | 有損壓縮(為縮小檔案大小而降低品質) |
| 檔案大小 | 大 (因追求高品質且可選不壓縮) | 體積更小、針對網頁使用進行優化且載入迅速 |
| 圖片品質 | 高 (適合專業用途,完整保留所有細節) | 較低 (因有損壓縮,品質有所犧牲) |
| 色彩深度 | 支援高色彩深度(每通道最高 16 位元或 32 位元) | 24 位元色彩(1,670 萬種顏色) |
| 使用案例 | Professional攝影、出版、掃描、歸檔 | 網頁圖片、社群媒體、日常照片 |
| 透明度 | 支援透明度與 Alpha 通道 | 不支援透明度 |
| 編輯 | 適合多次編輯(重新儲存後品質不變) | 反覆編輯與儲存會導致品質下降 |
| 相容性 | 廣受專業軟體支援 | 全面支援所有平台與裝置 |
| 動畫 | 不支援動畫 | 不支援動畫 |
| 元資料 | 儲存大量元資料(EXIF、圖層等) | 儲存 EXIF 元資料,但功能較為有限 |
我該如何為我的應用程式在 ReadPhoto 與 Read 之間做出選擇?
請針對每種生產環境的使用情境進行考量,以優化應用程式效能。 雖然 ReadPhoto 適用於複雜的 TIFF 圖像,但其處理速度較慢。 JPEG 格式雖能加快處理速度,但畫質較低,可能導致 OCR 信心率偏低。 必要時請使用影像品質修正濾鏡來提升翻譯效果。
confidence 中的 OcrPhotoResults 屬性,或任何 IOcrResult 介面類別,皆會標示結果的準確度,讓開發人員得以進行測試與優化。 若需最高精準度,搭配高品質 TIFF 影像的 ReadPhoto 可提供最佳結果,特別適用於精確度至關重要的檔案保存或法律文件處理。
請確保圖片符合特定品質標準,在效率與準確性之間取得平衡。 針對混合文件類型,請採用混合翻譯策略:對要求高精度的關鍵文件使用 ReadPhoto,而對優先考量速度的常規任務則使用標準的 Read。
常見問題
ReadPhoto 方法支援哪些圖像格式?
IronOCR 的 ReadPhoto 方法針對 TIFF 和 GIF 等複雜照片格式進行了優化。它專門設計用於從高品質的掃描文件和照片中提取文字,並提供包含文字區域和信心分數的結構化結果。
如何從 TIFF 圖像中擷取文字?
若要使用 IronOCR 從 TIFF 圖像中擷取文字,請建立一個 OcrInput 變數,使用 LoadImageFrame 載入圖像,然後呼叫 ReadPhoto 方法。此流程相當簡單:var result = new IronTesseract().ReadPhoto(new OcrInput().LoadImageFrame("photo.tiff", 0));
using ReadPhoto 函式需要安裝哪些額外套件?
若要使用 IronOCR 中的 ReadPhoto 函式,您需要從 NuGet 安裝 IronOcr.Extensions.AdvancedScan 套件。此擴充套件提供了 ReadPhoto 方法所需的高階掃描功能。
何時應使用 ReadPhoto 取代標準的 Read 方法?
處理 TIFF 和 GIF 等複雜照片格式時,請使用 IronOCR 的 ReadPhoto 方法,特別是針對需要精準 OCR 處理的高品質掃描文件。標準的 Read 方法則更適合一般性的影像處理任務。
ReadPhoto 提供什麼樣的結果?
IronOCR 的 ReadPhoto 方法會提供結構化的 OCR 結果,其中包含附有信心分數的文字擷取區域。您可以透過 OcrPhotoResult 屬性存取這些結果,以檢視並處理擷取的資料。
ReadPhoto 能否處理多頁文件?
是的,IronOCR 的 ReadPhoto 方法可處理多頁文件,尤其是通常包含多個畫面的 TIFF 檔案。透過 LoadImageFrame 方法,您可以在多頁文件中指定要處理的畫面。
哪些產業能從照片 OCR 技術中受益?
IronOCR 能為處理法律文件、檔案、收據,以及任何需處理大量掃描文件且高效資料擷取至關重要的企業帶來效益。其 ReadPhoto 方法可自動從這些複雜的影像格式中擷取文字。
使用 IronOCR 進行文件管理有哪些好處?
使用 IronOCR 進行文件管理,可將掃描文件轉換為可搜尋且可編輯的文字,從而簡化工作流程,減少人工資料輸入的需求,並提升文件的可存取性。
IronOCR 如何提升資料準確性?
IronOCR 透過其先進的辨識演算法與影像校正功能來提升資料準確性,確保文字擷取過程既可靠又精確。
IronOCR 是否有提供免費試用版?
是的,Iron Software 提供 IronOCR 的免費試用版,讓使用者能在決定購買前測試其功能與效能。

