C#使用Twain協(xié)議開(kāi)發(fā)一個(gè)高掃儀對(duì)接功能
請(qǐng)先安裝TwainDotNet

實(shí)現(xiàn)代碼
private static AreaSettings AreaSettings = new AreaSettings(Units.Centimeters, 0.1f, 5.7f, 0.1F + 2.6f, 5.7f + 2.6f);
Twain _twain;
ScanSettings _settings;
public ScanForm(string tName, string cNumber, List<string> names, CaseSelectForm form)
{
InitializeComponent();
try
{
SelectForm = form;
this.DoubleBuffered = true;//設(shè)置本窗體
SetStyle(ControlStyles.UserPaint, true);
SetStyle(ControlStyles.AllPaintingInWmPaint, true); // 禁止擦除背景.
SetStyle(ControlStyles.DoubleBuffer, true); // 雙緩沖
myNames = names;
_typeName = tName;
_caseNumber = cNumber;
this.Text = "掃描文件 - " + tName + " - " + cNumber;
_twain = new Twain(new WinFormsWindowMessageHook(this));
_twain.TransferImage += delegate (Object sender, TransferImageEventArgs args)
{
if (args.Image != null)
{
Bitmap image = new Bitmap(args.Image);
string temp = DateTime.Now.ToString("yyyyMMddHHmmssffff") + ".jpg";
//緩存圖片到磁盤(pán)
string path = tempPath + temp;
image.Save(path, ImageFormat.Jpeg);
tempPicUrl.Add(path);
var resizeImg = ImageHelper.KiResizeImage(image, 0.2f);
//緩存圖片到磁盤(pán)
string path2 = resizePath + temp;
resizeImg.Save(path2, ImageFormat.Jpeg);
//scanImages.Add(image);
imageList1.Images.Add(image);
image.Dispose();
}
args.Image.Dispose();
};
_twain.ScanningComplete += delegate
{
for (int i = LastScanCount; i < imageList1.Images.Count; i++)
{
ListViewItem li = new ListViewItem();
li.Text = i.ToString();
li.ImageIndex = i;
mlistview_Image.Items.Add(li);
ImageStateModels.Add(new ImageStateModel
{
Checked = false,
Person = "無(wú)",
tempPicUrl = tempPicUrl[i],
Name = i.ToString()
});
}
LastScanCount = ImageStateModels.Count;
mlbl_PageCount.Text = string.Format("本次掃描 {0} 頁(yè)", ImageStateModels.Count);
Enabled = true;
this.Activate();
this.WindowState = FormWindowState.Maximized;
};
// ocr = new TesseractEngine("./tessdata", "chi_sim");
InitInfo();
InitCut();
InitSearch();
InitWords();
DeleteFileByDir();
InitMatchImg();
}
catch (Exception ex)
{
log4netHelper.Error("---報(bào)錯(cuò)方法--ScanForm");
log4netHelper.Error(ex.Message);
log4netHelper.Error(ex.StackTrace);
log4netHelper.Error(ex.ToString());
log4netHelper.Error("---end---");
MessageBox.Show("請(qǐng)檢查設(shè)備是否開(kāi)啟或者鏈接!");
}
}
private void Init()
{
try
{
mcb_userName.DataSource = myNames;
mtbPage_Set.SelectedIndex = 0;
string savetype = ConfigHelper.ReadConfigPath("savetype.txt");
if (savetype.Trim() == "1")
{
mcBox_savetype.Text = ".jpg";
}
else if (savetype.Trim() == "0")
{
mcBox_savetype.Text = ".PDF";
}
_saveType = savetype;
}
catch (Exception ex)
{
log4netHelper.Error("---報(bào)錯(cuò)方法--Init");
log4netHelper.Error(ex.Message);
log4netHelper.Error(ex.StackTrace);
log4netHelper.Error(ex.ToString());
log4netHelper.Error("---end---");
}
}
到此這篇關(guān)于C#使用Twain協(xié)議開(kāi)發(fā)一個(gè)高掃儀對(duì)接功能的文章就介紹到這了,更多相關(guān)C# Twain開(kāi)發(fā)高掃儀對(duì)接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C# DataSet查看返回結(jié)果集的實(shí)現(xiàn)
這篇文章主要介紹了C# DataSet查看返回結(jié)果集的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
WinForm之BindingSource基礎(chǔ)操作實(shí)例教程
這篇文章主要介紹了WinForm之BindingSource基礎(chǔ)操作,對(duì)BindingSource組建的用法進(jìn)行較為深入的實(shí)例分析,需要的朋友可以參考下2014-08-08
Unity UGUI的RectMask2D遮罩組件的介紹使用
這篇文章主要為大家介紹了Unity UGUI的RectMask2D遮罩組件的介紹使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
C# 表達(dá)式樹(shù)Expression Trees的知識(shí)梳理
本篇文章主要介紹了表達(dá)式樹(shù) Expression Trees的基礎(chǔ)知識(shí):Lambda 表達(dá)式創(chuàng)建表達(dá)式樹(shù);API 創(chuàng)建表達(dá)式樹(shù);編譯表達(dá)式樹(shù);執(zhí)行表達(dá)式樹(shù);修改表達(dá)式樹(shù)等等,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01
C#異步綁定數(shù)據(jù)實(shí)現(xiàn)方法
這篇文章主要介紹了C#異步綁定數(shù)據(jù)實(shí)現(xiàn)方法,實(shí)例分析了C#操作數(shù)據(jù)庫(kù)及異步綁定的相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09

