```mermaid flowchart TD Start([開始]) --> GetInfo[獲取 CallBackData 並轉為 ScanInfo 指針] GetInfo --> AssignDIB[將 DIB 句柄轉為影像對象並設定 DPI] AssignDIB --> FormatCheck{檢查影像格式} FormatCheck -- 黑白 (ifBlackWhite) --> BWProc[條碼辨識, 旋轉, 反向, 去偏斜, 清黑邊] FormatCheck -- 全彩 (ifTrueColor) --> ColorProc[設定 JPEG 壓縮品質與條碼辨識旋轉] FormatCheck -- 灰階 (ifGray256) --> GrayProc[設定 JPEG 壓縮品質與條碼辨識旋轉] BWProc --> CropCheck{檢查是否需 A3 切割為 A4?} ColorProc --> CropCheck GrayProc --> CropCheck CropCheck -- 是 --> PerformCrop[執行影像切割為第一與第二部分] CropCheck -- 否 --> SingleImg[直接處理原始影像] PerformCrop --> LoopPages[對每一部分進行迴圈處理] SingleImg --> LoopPages LoopPages --> BlankCheck{是否刪除空白頁?} BlankCheck -- 否/非空白 --> SaveProc[呼叫 PageEnd 決定路徑檔名並儲存檔案] BlankCheck -- 是空白 --> NextPage[處理下一部分] SaveProc --> CallPageDone[呼叫 PageDone 更新 UI] CallPageDone --> NextPage NextPage --> LoopEnd{所有部分處理完畢?} LoopEnd -- 否 --> LoopPages LoopEnd -- 是 --> FreeRes[釋放資源] --> End([結束]) ```