首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> Delphi

Delphi 掃描儀控制實戰:Wang Imaging OCX 元件 (ImgScan/ImgEdit) 完整整合指南

     編輯:Delphi

三種控制掃描儀方式比較

方式優點缺點
外部圖片處理軟體 (Photoshop 等)功能強、無需寫碼整合度低、使用者需切換程式
TWAIN API (twain_32.dll)底層控制、彈性最高程式複雜、需深入 TWAIN 協定
OCX/ActiveX 元件 (Wang Imaging)視覺化、封裝 TWAIN、Delphi 整合容易依賴系統安裝「影像」元件、較舊技術

本文採用第三種:Windows 內建 Wang Imaging OCX (四個元件)。

元件安裝與匯入

  1. 控制台 → 新增/移除程式 → Windows 元件 → 附件 → 勾選「影像」
  2. Delphi → Component → Import ActiveX Control
  3. 勾選四項:
    Wang 影像編輯控制 (ImgEdit)
    Wang 影像掃描控制 (ImgScan)
    Wang 影像管理控制 (ImgAdmin)
    Wang 影像縮略圖控制
  4. Install → 元件面板 ActiveX 頁籤出現四個圖示

核心元件屬性與方法速查

ImgScan (掃描控制)

屬性/方法說明
FileType輸出格式:TIFF、BMP、AWD
ScanTo0=顯示、1=顯示並存檔、2=僅存檔、3=模板顯示存檔、4=模板存檔、5=傳真
DestImageControl關聯的 ImgEdit 元件名稱 (ScanTo=0 時必須)
Zoom縮放比例
OpenScanner/CloseScanner開啟/關閉掃描儀連線
StartScan/StopScan開始/停止掃描
ShowSelectScanner顯示選擇掃描儀對話框
ScannerAvailable檢查掃描儀是否就緒

ImgEdit (影像編輯/顯示)

  • 屬性:解析度、寬高、選取區域控制
  • 方法:ClipboardCopy/Cut/Paste、RotateLeft/Right、Flip (鏡像)、Print/Save/Refresh、DrawSelectionRect、ClearDisplay
  • 事件:OnSelectionRectDrawn (選取區域完成)

常見問題與解決方案

問題 1:部分選取複製/剪貼位置漂移

原因:ImgEdit 內部座標計算 Bug。
解決:在 OnSelectionRectDrawn 事件存儲選取座標至全域變數,複製/剪貼前先用存儲座標重選:


procedure TForm1.ImgEdit1SelectionRectDrawn(Sender: TObject; Left, Top, Width, Height: Integer);
begin
  SelLeft := Left; SelTop := Top; SelWidth := Width; SelHeight := Height;
  // 啟用複製/剪貼按鈕
end;

procedure TForm1.CopyClick(Sender: TObject);
begin
  ImgEdit1.DrawSelectionRect(SelLeft, SelTop, SelWidth, SelHeight); // 重選
  ImgEdit1.ClipboardCopy(SelLeft, SelTop, SelWidth, SelHeight);
end;

問題 2:寫入 SQL 圖片欄位 BDE 報錯

Delphi 3/4 BDE Bug,升級包可修復。

完整範例程式碼結構


unit Scanu;
interface
uses ..., ImgEditLib_TLB, ScanLib_TLB; // 匯入的 TLB 單元
type
  TScanForm = class(TForm)
    ImgEdit1: TImgEdit;
    ImgScan1: TImgScan;
    // 選單/按鈕事件處理掃描、旋轉、鏡像、選取、複製、剪貼、貼上
  private
    SelLeft, SelTop, SelWidth, SelHeight: Integer;
  end;
implementation
// 各事件處理程序,參考上述問題解決模式
end.

現代替代方案建議

  • WIA (Windows Image Acquisition):XP+ 內建,COM 介面,比 TWAIN 簡單。
  • TWAIN Direct / TWAIN Local:現代化 TWAIN,支援雲端/行動裝置。
  • 第三方元件套件:GdPicture、VintaSoft、Leadtools 等功能更完整、支援新 OS。

總結

Wang Imaging OCX 是 Delphi 早期整合掃描儀的經典方案,透過 ImgScan 控制掃描流程、ImgEdit 處理影像編輯。雖屬舊技術,理解其「掃描→顯示/存檔→編輯→輸出」流程與常見坑點,對維護舊系統或理解影像擷取架構仍有參考價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved