日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

TWAIN协议学习笔记

發(fā)布時間:2024/4/17 ChatGpt 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TWAIN协议学习笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TWAIN定義了圖像設備(掃描儀,數(shù)碼相機)和應用之間相互通信的協(xié)議,各個設備廠商通過支持TWAIN協(xié)議使得上層應用可以用同樣的代碼去訪問不同掃描儀

TWAIN主要包括三個要素:

Application - 使用TWAIN的圖像應用,如Photoshop,

Source Manager - 用來管理數(shù)據(jù)源和應用之間的交互,這個模塊由TWAIN Group來維護,并提供開源代碼(https://github.com/twain/twain-dsm)。windows提供默認實現(xiàn)TWAIN32.dll但是只支持到1.7版本,這個版本最早是存在于windows98 和NT5.0,直到今天也沒升級過。 通常application或source安裝時應該提供更新版本,下載最新代碼編譯后的版本號是2.4,最終二進制文件如下

Winddows:TWAINDSM.dll

Mac:Twain.framework

Linux:/usr/local/lib/libtwaindsm.so

Data Source - 主要用于控制圖像設備,這塊主要由硬件廠商開發(fā),

?

?目前TWAIN協(xié)議最新版本號是2.4。對于TWAIN來說,版本2.0是個分水嶺(于2010年制定),這個版本定義了圖像設備允許支持windows,Mac,Linux,并可以允許在x86和x64位系統(tǒng),目前來說很多硬件廠商都沒有對TWAIN Source升級到2.x,所以一般來說應用程序遵循1.x標準也可以使用大多數(shù)掃描儀

通信接口

三個要素之間通信通過DSM_Entry()和DS_Entry()兩個接口

開發(fā)TWAIN應用

應用程序無法之間操作source,所有對source的請求都是通過Source Manager完成DSM_Entry(),根據(jù)TWAIN協(xié)議推薦,所有的TWAIN命令調(diào)用最好在同一個線程完成

當應用使用TWAIN 1.x時,需要提供一個windows句柄接收source的事件

TW_UINT16 TW_CALLINGSTYLE DSM_Entry
( pTW_IDENTITY pOrigin, // source of message
pTW_IDENTITY pDest, // destination of message
TW_UINT32 DG, // data group ID: DG_xxxx
TW_UINT16 DAT, // data argument type: DAT_xxxx
TW_UINT16 MSG, // message ID: MSG_xxxx
TW_MEMREF pData // pointer to data
);

pOrigin - 應用程序信息

pDest - 目標信息,如果是Source Manager,是NULL,如果是Source,則為這個Source的Identity

DG- 操作數(shù)據(jù)組

DAT -操作數(shù)據(jù)類型

MSG-消息ID

其中DG/DAT/MSG稱為twain的操作組

twain session

操作掃描儀需要在session內(nèi)完成,每個TWAIN session包括7個狀態(tài),不同的狀態(tài)使用不同操作組對source操作和狀態(tài)轉(zhuǎn)移,應用程序應該遵循狀態(tài)對source進行操作。但TWAIN并不強制要求每個source按照state1到state7的步驟進行狀態(tài)轉(zhuǎn)移,比如很多程序在load sourcemanager(state 3)后暫停,然后重復state4-state7(重復選擇掃描儀進行掃描)

  • State 1 to 2 -加載source manager 獲取 DSM_Entry接口
  • State 2 to 3 - 打開source manager
  • State 3 - 選擇 Source
  • State 3 to 4 - 打開 Source
  • State 4 - 設置source的capacity
  • State 4 to 5 - 請求從source獲取數(shù)據(jù)
  • State 5 to 6 - 數(shù)據(jù)可以準備消息
  • State 6 to 7 - 開始數(shù)據(jù)傳輸
  • State 7 to 6 to 5 - 完成傳輸
  • State 5 to 1 - 斷開連接

?

停止掃描兩種方法

  • MSG_STOPFEDDER -發(fā)送停止掃描命令,,掃描儀會將掃描過的圖片發(fā)過來

  • MSG_RESET -發(fā)送停止掃描命令,,掃描儀不會將掃描過的圖片發(fā)過來,調(diào)完這個命令后,TWAIN狀態(tài)將直接到SourceEnabled

  • 轉(zhuǎn)載于:https://www.cnblogs.com/myhw/p/8378546.html

    總結(jié)

    以上是生活随笔為你收集整理的TWAIN协议学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。