如何撰寫 WIN XP 平台 的掃描器程式 |
答題得分者是:shunchia63
|
esp_pzj
初階會員 ![]() ![]() 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
各位大大請給我指點:
我有參考過這篇文章: 在Delphi中控制掃描器 http://delphi.ktop.com.tw/board.php?cid=30&fid=73&tid=22370 不過只有WIN9X 及 WIN 2000 可使用 不知怎麼 選寫 WIN XP上的 描器程式 文中提到 ---- Windows9X在其附件中提供了“映象”可選件,該附件是採用OCX構件來控制掃描器的,共有imgEdit、imgAnntool、imgScan、imgAdmin 四個,有這四個構件基本上就能完全控制掃描器。在Delphi中的用法如下: 在Windows9x中選擇安裝“映象”。(在控制面板中選擇“添加/刪除程式”,再選擇“安裝Windows”,點擊“附件”核取方塊,然後從“詳細資料”按鈕中可以找到“映象”) 不懂 此段的意思。 感謝 各位大大指點
------
學藝不精 謝多多指教 |
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
InXP 沒有內建此控件 另一個做法 COPY Win2K System32 Path 2003/06/19 下午 12:05 128,784 IMAGEHLP.DLL 2001/07/06 下午 08:41 569,344 imagr5.dll 2001/07/06 下午 06:44 544,768 imagx5.dll 2001/07/07 上午 12:24 283,920 ImagXpr5.dll 2000/01/10 下午 12:00 32,768 imeshare.dll 2000/01/10 下午 08:00 102,672 imgadmin.ocx 2000/01/10 下午 08:00 60,688 imgcmn.dll 2003/06/19 下午 12:05 306,448 imgedit.ocx 2000/01/10 下午 08:00 117,520 imgscan.ocx 2000/01/10 下午 08:00 13,584 imgshl.dll 2000/01/10 下午 08:00 107,792 imgthumb.ocx 2002/08/29 上午 09:33 30,720 imgutil.dll 2003/06/19 下午 12:05 96,528 imm32.dll 2000/01/10 下午 08:00 522,512 kodakimg.exe 2000/01/10 下午 08:00 71,440 kodakprv.exe 2007/12/18 下午 12:02 0 list.txt 2003/06/19 下午 12:05 444,176 oieng400.dll 至 XP System32 Path Regsvr32 imgedit.ocx in delphi import TypeLib即可看到此控件 (N年前,那時後用Win2K用來顯示TIF ,那知 XP發行後就 沒此套件....真的有點@@..) For Scan 我機乎都用TWAIN 控制 Delphi 有人也也有開發好此功能 EZTWAIN MultiTWAIN.pas 找一下應該可以很容易使用<---提供Scan函式 有介面的 LLI LLO 很早期的套件 (很容易使用,包含影像處理 <--有點像 小畫家跟Scaner整合 ) 用到現在沒有OS限制 <--要錢的 ===================引 用 esp_pzj 文 章=================== 各位大大請給我指點: 我有參考過這篇文章: 在Delphi中控制掃描器 http://delphi.ktop.com.tw/board.php?cid=30&fid=73&tid=22370 不過只有WIN9X 及 WIN 2000 可使用 不知怎麼 選寫 WIN XP上的 描器程式 文中提到 ---- Windows9X在其附件中提供了“映象”可選件,該附件是採用OCX構件來控制掃描器的,共有imgEdit、imgAnntool、imgScan、imgAdmin 四個,有這四個構件基本上就能完全控制掃描器。在Delphi中的用法如下: 在Windows9x中選擇安裝“映象”。(在控制面板中選擇“添加/刪除程式”,再選擇“安裝Windows”,點擊“附件”核取方塊,然後從“詳細資料”按鈕中可以找到“映象”) 不懂 此段的意思。 感謝 各位大大指點
編輯記錄
shunchia63 重新編輯於 2007-12-18 12:16:07, 註解 無‧
|
esp_pzj
初階會員 ![]() ![]() 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
感謝 shunchia63大大:提供我 寶貴的議建。
我使用了EZTWAIN 出現下列的 錯誤我要如何解決: 我只有 使用 TWAIN_SelectImageSource(Handle); 損壞的影像 應用程式或dll ..\eztwain.dll為不正確的windows 影像。請再檢查一遍您的安裝磁片。 [code delphi] unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,EzTwain; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin TWAIN_SelectImageSource(Handle); end; end. [/code] 感謝指點
------
學藝不精 謝多多指教
編輯記錄
esp_pzj 重新編輯於 2007-12-18 16:07:04, 註解 無‧
|
shunchia63
高階會員 ![]() ![]() ![]() ![]() 發表:26 回覆:141 積分:198 註冊:2007-05-22 發送簡訊給我 |
Sorry 我找不到 Samplecode
我的寫法大致如下 //掛一個Callback 等待掃完通知 procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall; forward; 1.FormCreate() TWAIN_RegisterCallback(CallbackFxn); procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall; var TestDib:integer; Image1:TImage; J:TJPEGIMAGE; dwIndex,readint:integer; begin Image1 := TImage.Create(nil); TestDib := TWAIN_GetDib(index); CopyDibIntoImage(TestDib, Image1); TWAIN_FreeNative(TestDib); TestDib := 0; J := TJpegImage.Create(); J.Assign(Image1.Picture.Bitmap); if index mod 2 = 0 then //正面 J.SaveToFile("正面") else //背面 J.SaveToFile("背面"); J.Free; Image1.free; end; //GoGoGo procedure doSacn; var i:integer; ScanNum : integer; begin //// TWAIN_SelectImageSource(0); TWAIN_IsAvailable; hdib := TWAIN_AcquireNative(0, 0); ScanNum := TWAIN_GetNumDibs; end; |
esp_pzj
初階會員 ![]() ![]() 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
再次感謝shunchia63的指導,
小弟我技不如人,看不懂shunchia63的方式, 請各位大大高手,給小弟更多指點..... 還在努力 try try try try............ ===================引 用 shunchia63 文 章=================== Sorry 我找不到 Samplecode 我的寫法大致如下 //掛一個Callback 等待掃完通知 procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall; forward; 1.FormCreate() TWAIN_RegisterCallback(CallbackFxn); procedure CallbackFxn(CurDib: THandle; index: Integer); stdcall; var TestDib:integer; Image1:TImage; J:TJPEGIMAGE; dwIndex,readint:integer; begin Image1 := TImage.Create(nil); TestDib := TWAIN_GetDib(index); CopyDibIntoImage(TestDib, Image1); TWAIN_FreeNative(TestDib); TestDib := 0; J := TJpegImage.Create(); J.Assign(Image1.Picture.Bitmap); if index mod 2 = 0 then //正面 J.SaveToFile("正面") else //背面 J.SaveToFile("背面"); J.Free; Image1.free; end; //GoGoGo procedure doSacn; var i:integer; ScanNum : integer; begin //// TWAIN_SelectImageSource(0); TWAIN_IsAvailable; hdib := TWAIN_AcquireNative(0, 0); ScanNum := TWAIN_GetNumDibs; end;
------
學藝不精 謝多多指教 |
esp_pzj
初階會員 ![]() ![]() 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
我解決我的問題了..
我參考這篇分享文章 http://delphi.ktop.com.tw/board.php?cid=31&fid=77&tid=74424 使用 TAcquireImage 元件就可簡單的呼叫掃描機 的掃描程式 進行 掃描存檔 感謝 shunchia63 大大及各位大大幫忙
------
學藝不精 謝多多指教
編輯記錄
esp_pzj 重新編輯於 2007-12-19 10:17:40, 註解 無‧
|
pceyes
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
esp_pzj
初階會員 ![]() ![]() 發表:32 回覆:70 積分:40 註冊:2007-02-09 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |