亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

在Delphi中控制掃描儀

2019-11-18 18:43:48
字體:
來源:轉載
供稿:網友
 

[DELPHI]在Delphi中控制掃描儀
 
---- 在利用Delphi開發信息管理系統時,常常要處理圖象,這也是信息管理系統發展的必然趨勢。怎樣在Delphi中通過掃描儀獲得所需的圖象信息呢?不外乎有三種基本的方法:
通過圖象處理軟件,比如說photoshop等,通過它們的掃描圖象的功能,加工成一定格式的圖象后再在自己的系統中利用;

通過掃描儀接口Twain.DLL 。該接口是在安裝掃描儀時提供的,它實際上是一個Plugin插件,它通過一系列函數來控制掃描儀;

通過構件技術來控制掃描儀。
---- 利用第一種方法能減少編程的復雜度,但是系統的集成度不高,用戶使用上也不方便;第二種方法能在驅動程序級直接控制掃描儀,能
在編程上提供最大的靈活性和可控性;第三種方法能充分利用Delphi的可視化構件技術,安全、靈活、自由地利用掃描儀。其實第三種方法也
是建立在掃描儀接口Twain.DLL之上的。本文論述的方法就采用第三種。

---- Windows9X在其附件中提供了“映象”可選件,該附件是采用OCX構件來控制掃描儀的,共有imgEdit、imgAnntool、imgScan、imgAdmin 四個,有這四個構件基本上就能完全控制掃描儀。在Delphi中的用法如下: 在Windows9x中選擇安裝“映象”。(在控制面板中選擇“添加/刪除程序”,再選擇“安裝Windows”,點擊“附件”復選框,然后從“詳細資料”按鈕中可以找到“映象”)

啟動Delphi,選擇“Component”菜單項下的“Import ActiveX Control”,
這時可以看到列表中有“Wang 圖象編輯控制、Wang 圖象掃描控制、Wang
圖象管理控制、Wang 圖象縮略圖控制”,選中這四項,然后點擊“Install”
按鈕,這時在構件面板上的ActiveX舌標下就可以看到這四個構件的圖標。
---- ImgScan 的主要屬性:FileType:圖象的文件類型(該構件支持三
種:TIFF,BMP,AWD);

ScanTo:返回或設置被掃描圖象的目的;
可取值 含義
0 (缺省) 顯示被掃描的圖象.
1 顯示被掃描的圖象并寫入一個文件.
2 把圖象寫入一個文件
3 以模板方式把圖象寫入文件并顯示.
4 . 以模板方式把圖象寫入文件
5 傳真被掃描的圖象
注意:如果取缺省值0,
必須和 Wang ImgEdit 構件配合使用。
DestImageControl:Wang ImgEdit構件名;
Zoom:圖象的放縮比例

ImgScan 的主要方法:OpenScanner :打開掃描儀;
CloseScanner :關閉掃描儀;
StartScan : 開始掃描;
StopScan : 停止掃描


---- ImgEdit 的屬性主要是控制掃描圖象的分辨率、圖象的寬高、是否
允許對圖象進行局部選 擇等;其方法主要有拷貝、剪切圖象到粘貼板,
從粘貼板復制圖象,旋轉、放縮、 鏡象圖象;打印、保存、刷新圖象等。
---- 關于上述四個OCX構件的詳細使用說明可在Delphi中查看其自帶的
幫助系統。
---- 下面是使用這兩個構件的一些例子:

PRocedure Tscanf.N1Click(Sender: TObject);
begin
ImgScan1.ShowSelectScanner;
file://選擇系統中已安裝的掃描儀
end;

procedure Tscanf.N2Click(Sender: TObject);
begin
imgedit1.zoom:=100; file://設置圖象的放縮因子
if not imgscan1.ScannerAvailable then
file://如果選擇的掃描儀不可用
imgscan1.OpenScanner;//打開掃描儀
imgscan1.StartScan; file://開始掃描圖象
imgscan1.CloseScanner; file://關閉掃描儀
end;


procedure Tscanf.N8Click(Sender: TObject);
begin
if (imgedit1.IsClipboardDataAvailable
and imgedit1.ImageDisplayed ) then
imgedit1.ClipboardPaste(selleft,seltop);
file://從剪貼板粘貼圖象,其參數為Imgedit的顯示區域的起始坐標
end;

procedure Tscanf.N1801Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.Flip; file://鏡象圖象
end;

procedure Tscanf.N901Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.RotateRight file://向右旋轉圖象
end;
procedure Tscanf.N6Click(Sender: TObject);
begin
imgedit1.DrawSelectionRect(selleft,
seltop,selwidth,selheight);//進行圖象局部選擇
imgedit1.ClipboardCut(selleft,seltop,
selwidth,selheight);//剪切所選區域
end;


---- 注意:在DELPHI中使用Imgedit構件的拷貝和剪切功能時,會出現
以下問題:
---- 1、 如果把整幅圖象都選中,沒有任何問題;
---- 2、 如果選擇了局部區域,則拷貝和剪切的區域會發生漂移;
---- 3、 如果DELPHI做的是MS SQL后端數據庫的客戶端界面,那么在把
圖象內容寫入數據庫的圖象字段中時,BDE(數據庫引擎)會報錯。這是
DELPHI3。0和4。0的BUG,4。0的升級包可以解決這個問題。
---- 至于第二個問題,可這樣解決:在Imgedit的onSelectionRectDrawn
事件中寫一段代碼,把選擇區域的邊界值保存到四個全局變量中,在拷貝
和剪切之前用先前保存的變量再進行一次選擇即可(當然,這一切都在后
臺進行的,見前面的例子)。
---- 開發環境:DELPHI4。0,HP ScanJet 4P掃描儀;

---- 附源代碼。
unit scanu;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, Menus, ScanLib_TLB, ExtCtrls, AxCtrls,
OleCtrls, ImgeditLib_TLB;

type
Tscanf = class(TForm)
MainMenu1: TMainMenu;
F1: TMenuItem;
N15: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N16: TMenuItem;
N11: TMenuItem;
N5: TMenuItem;
C1: TMenuItem;
N4: TMenuItem;
E1: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N3: TMenuItem;
N10: TMenuItem;
N9: TMenuItem;
N1801: TMenuItem;
N901: TMenuItem;
N902: TMenuItem;
H1: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
ImgEdit1: TImgEdit;
Bevel1: TBevel;
ImgScan1: TImgScan;
Bevel2: TBevel;
procedure N4Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N1801Click(Sender: TObject);
procedure N901Click(Sender: TObject);
procedure N902Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure ImgEdit1SelectionRectDrawn(Sender: TObject; Left,Top,
Width, Height: Integer);
procedure N11Click(Sender: TObject);
private
{ Private declarations }
public
selleft,seltop,selwidth,selheight:integer;
{ Public declarations }
end;
var
scanf: Tscanf;

implementation

{$R *.DFM}

procedure Tscanf.N4Click(Sender: TObject);
begin
imgedit1.ClearDisplay;
close;
end;

procedure Tscanf.N1Click(Sender: TObject);
begin
ImgScan1.ShowSelectScanner;
end;

procedure Tscanf.N2Click(Sender: TObject);
begin
imgedit1.zoom:=100;
if not imgscan1.ScannerAvailable then
imgscan1.OpenScanner;
imgscan1.StartScan;
imgscan1.CloseScanner;
end;

procedure Tscanf.C1Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
begin
imgedit1.ClearDisplay;
imgedit1.zoom:=100;
end;
end;

procedure Tscanf.N8Click(Sender: TObject);
begin
if (imgedit1.IsClipboardDataAvailable and imgedit1.ImageDisplayed )
then
imgedit1.ClipboardPaste(selleft,seltop);
end;

procedure Tscanf.N1801Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.Flip;
end;

procedure Tscanf.N901Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.RotateRight
end;

procedure Tscanf.N902Click(Sender: TObject);
begin
if imgedit1.ImageDisplayed then
imgedit1.RotateLeft;
end;

procedure Tscanf.N6Click(Sender: TObject);
begin
imgedit1.DrawSelectionRect(selleft,seltop,selwidth,selheight);
imgedit1.ClipboardCut(selleft,seltop,selwidth,selheight);
end;

procedure Tscanf.N7Click(Sender: TObject);
begin
imgedit1.DrawSelectionRect(selleft,seltop,selwidth,selheight);
imgedit1.ClipboardCopy(selleft,seltop,selwidth,selheight);
end;

procedure Tscanf.ImgEdit1SelectionRectDrawn(Sender: TObject; Left,
Top, Width, Height: Integer);
begin
if ((width=0) and (height=0))then
begin
n3.Enabled:=false;
n6.Enabled:=false;
n7.Enabled:=false;
selleft:=left;
seltop:=top;
selwidth:=width;
selheight:=height;
end
else begin
n6.Enabled:=true;
n7.Enabled:=true;
selleft:=left;
seltop:=top;
selwidth:=width;
selheight:=height;
end;
end;

procedure Tscanf.N11Click(Sender: TObject);
begin
if not imgedit1.IsClipboardDataAvailable then
if imgedit1.imagedisplayed then
imgedit1.ClipboardCopy(0,0,imgedit1.Width,imgedit1.Height);
end;
end


上一篇:詳細教你如何使用delphi中thread的線程編程

下一篇:在delphi中使用flash控件

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产综合新一区| 欧美整片在线观看| 国产精品久久久久久超碰| 亚洲字幕一区二区| 国产一区二区丝袜| 欧美精品久久久久a| 亚洲最大激情中文字幕| 国产精品91久久久| 自拍偷拍亚洲精品| 中文字幕av一区| 成人欧美一区二区三区黑人孕妇| 91午夜在线播放| 亚洲成av人片在线观看香蕉| 黑人欧美xxxx| 日本久久91av| 成人信息集中地欧美| 日韩欧美在线看| 久热精品视频在线观看一区| 国产日韩精品一区二区| 97成人在线视频| 国产精品r级在线| 最近日韩中文字幕中文| 97精品视频在线| 懂色aⅴ精品一区二区三区蜜月| 国产精品久久久久久久久久久不卡| 国产精品大片wwwwww| 中文字幕欧美亚洲| 综合激情国产一区| 日韩成人网免费视频| 伊人亚洲福利一区二区三区| 国产一区二区黄| 国产精品久久99久久| 亚洲欧美国内爽妇网| 一区二区三区国产在线观看| 中文字幕v亚洲ⅴv天堂| 姬川优奈aav一区二区| 久久国产精品视频| 亚洲精品国产精品乱码不99按摩| 日韩精品中文字幕在线播放| 亚洲成人网在线观看| 亚洲欧美日韩爽爽影院| 91深夜福利视频| 国产99久久久欧美黑人| 欧美国产日本在线| 91在线网站视频| 国产mv免费观看入口亚洲| 久久亚洲国产精品成人av秋霞| 成人免费网视频| 91av成人在线| 欧美日产国产成人免费图片| 欧美床上激情在线观看| 成人激情av在线| 色哟哟入口国产精品| 欧美大成色www永久网站婷| 亚洲爱爱爱爱爱| 亚洲va欧美va国产综合久久| 欧美一二三视频| 亚洲精品乱码久久久久久金桔影视| 精品中文字幕视频| 亚洲国产91精品在线观看| 国产精品日韩av| 国产视频精品一区二区三区| 国产一区欧美二区三区| 欧美日韩亚洲高清| 国产精品久久久久久亚洲影视| 国产不卡一区二区在线播放| 亚洲人av在线影院| 成人欧美一区二区三区在线湿哒哒| 亚洲乱码av中文一区二区| 亚洲伊人一本大道中文字幕| 久久精品国产清自在天天线| 91九色精品视频| 98午夜经典影视| 91久久精品国产91久久性色| 国产欧美在线视频| 久久免费国产视频| 日韩成人小视频| 欧美精品福利视频| 欧美激情国产日韩精品一区18| 亚洲精品www久久久久久广东| 久99久在线视频| 欧美性视频网站| 久久久久久久影院| 欧美日韩精品在线观看| 91影院在线免费观看视频| 亚洲а∨天堂久久精品喷水| 国产成人精品在线视频| 欧美肥老太性生活视频| 国产精品久久电影观看| 日韩国产高清污视频在线观看| 国产亚洲欧洲高清| 亚洲一区二区三区成人在线视频精品| 美女福利精品视频| 亚洲最大的网站| 国产亚洲一区精品| 色偷偷av亚洲男人的天堂| 亚洲精品视频网上网址在线观看| 久久好看免费视频| 91在线高清视频| 青草青草久热精品视频在线网站| 欧美日韩国产一区二区| 亚洲日本成人网| 色老头一区二区三区在线观看| 日韩动漫免费观看电视剧高清| 91高清视频免费| 中文字幕在线成人| 日韩欧美有码在线| 国产在线精品一区免费香蕉| 亚洲国产高清福利视频| 在线观看国产精品日韩av| 中文亚洲视频在线| 日韩不卡中文字幕| 亚洲国产精品成人va在线观看| 91久久精品国产91久久性色| 欧美在线一级va免费观看| 欧美激情欧美激情在线五月| 91麻豆桃色免费看| 91av成人在线| 97成人精品视频在线观看| 亚洲色无码播放| 国产精品专区h在线观看| 96国产粉嫩美女| 国产精品91一区| 国产精品69精品一区二区三区| 亚洲成人三级在线| 91精品久久久久久久久久另类| 97成人精品区在线播放| www.欧美免费| 久久久久一本一区二区青青蜜月| 国产+成+人+亚洲欧洲| 欧美大片免费看| 丝袜一区二区三区| 精品国产欧美一区二区五十路| 大量国产精品视频| 亚洲аv电影天堂网| 国产suv精品一区二区三区88区| 奇米一区二区三区四区久久| 91经典在线视频| 亚洲精品免费一区二区三区| 俺去亚洲欧洲欧美日韩| 欧美精品在线观看| 久久久999精品| 国产日韩欧美自拍| 精品视频一区在线视频| 欧美日韩国产成人在线观看| 精品女厕一区二区三区| 92看片淫黄大片看国产片| 亚洲热线99精品视频| 成人午夜两性视频| 久久av资源网站| 国产剧情日韩欧美| 欧美成人剧情片在线观看| 久久精品夜夜夜夜夜久久| 91在线免费观看网站| 欧美人成在线视频| 亚洲国产精久久久久久久| 成人欧美一区二区三区在线| 国产成人小视频在线观看| 欧美视频在线免费看| 亚洲第一精品夜夜躁人人躁| 久热在线中文字幕色999舞| 亚洲成人精品视频在线观看| 高清欧美性猛交xxxx黑人猛交| 亚洲欧美国产一本综合首页|