程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 在Delphi中控制掃描儀(2)

在Delphi中控制掃描儀(2)

編輯: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掃描儀;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved