需要的东西下载
链接:https://pan.baidu.com/s/1bbbFZTlGT-6HAEMB6Hmnjw
提取码:j2ik
需要引用的DLL
需要的授权文件
需要添加的cs文件
cs文件代码
// An highlighted block
using System;
using System.Windows.Forms;
using Leadtools;
namespace Main
{
internal static class Support
{
public const string MedicalServerKey = "";
//#if LEADTOOLS_V19_OR_LATER
public static bool SetLicense(bool silent)
{
try
{
// TODO: Change this to use your license file and developer key */
string licenseFilePath = "Replace this with the path to the LEADTOOLS license file";
string developerKey = "Replace this with your developer key";
RasterSupport.SetLicense(licenseFilePath, developerKey);
}
catch (Exception ex)
{
System.Diagnostics.Debug.Write(ex.Message);
}
if (RasterSupport.KernelExpired)
{
string dir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
/* Try the common LIC directory */
string licenseFileRelativePath = System.IO.Path.Combine(dir, System.IO.Directory.GetCurrentDirectory() + "\\LEADTOOLS.LIC");
string keyFileRelativePath = System.IO.Path.Combine(dir, System.IO.Directory.GetCurrentDirectory() + "\\LEADTOOLS.LIC.key");
if (System.IO.File.Exists(licenseFileRelativePath) && System.IO.File.Exists(keyFileRelativePath))
{
string developerKey = System.IO.File.ReadAllText(keyFileRelativePath);
try
{
RasterSupport.SetLicense(licenseFileRelativePath, developerKey);
}
catch (Exception ex)
{
System.Diagnostics.Debug.Write(ex.Message);
}
}
}
if (RasterSupport.KernelExpired)
{
if (silent == false)
{
string msg = "Your license file is missing, invalid or expired. LEADTOOLS will not function. Please contact LEAD Sales for information on obtaining a valid license.";
string logmsg = string.Format("*** NOTE: {0} ***{1}", msg, Environment.NewLine);
System.Diagnostics.Debugger.Log(0, null, "*******************************************************************************" + Environment.NewLine);
System.Diagnostics.Debugger.Log(0, null, logmsg);
System.Diagnostics.Debugger.Log(0, null, "*******************************************************************************" + Environment.NewLine);
MessageBox.Show(null, msg, "No LEADTOOLS License", MessageBoxButtons.OK, MessageBoxIcon.Stop);
System.Diagnostics.Process.Start("https://www.leadtools.com/downloads/evaluation-form.asp?evallicenseonly=true");
}
return false;
}
return true;
}
public static bool SetLicense()
{
return SetLicense(false);
}
//#elif LTV18_CONFIG
// public static void SetLicense()
// {
// try
// {
// RasterSupport.SetLicense("", "Nag");
// /* Uncomment this and add your license file and developer key
// string licenseFilePath = "Replace this with the path to the LEADTOOLS license file";
// string developerKey = "Replace this with your developer key";
// RasterSupport.SetLicense(licenseFilePath, developerKey);
// */
// }
// catch (Exception ex)
// {
// System.Diagnostics.Debug.Write(ex.Message);
// }
// }
//#endif //LEADTOOLS_V19_OR_LATER
}
}
全局变量
private TwainSession _twnSession = null;
private RasterCodecs _codecs;
窗体加载
Boolean a = Support.SetLicense();
//调用cs文件中的授权信息
_twnSession = new TwainSession();
//实例化
String Startengine = "LEADTOOLS";
_twnSession.Startup(this.Handle, Startengine, "LEADTOOLS for .NET", String.Empty, "SMsystem", TwainStartupFlags.None);
//加载扫描
foreach (TwainSourceInformation tw in _twnSession.QuerySourceInformation())
{
cmbDriverName.Items.Add(tw.Name);
}
//下拉框加载扫描仪
_twnSession.AcquirePage += new EventHandler<TwainAcquirePageEventArgs>(Twain_AcquirePage);
//加载扫描保存方法
扫描事件
private void Twain_AcquirePage(object sender, TwainAcquirePageEventArgs e) //事件
{
_codecs = new RasterCodecs();
//实例化
bool blank = BlankPageDetectorCommandExample(e.Image);
//判断是否为空白页
_codecs.Save(e.Image,
textBox2.Text + "\\qwer" + textBox1.Text + ".tif",//文本保存路径及文件名
RasterImageFormat.Jpeg,//文件类型
//RasterImageFormat.Tif,
0,
1,
1,
1,
CodecsSavePageMode.Append);
_codecs.Dispose();
GC.Collect();
//扫描保存方法,每扫一张加载一次这个方法
}
判断空白页方法
public bool BlankPageDetectorCommandExample(RasterImage image)
{
RasterCodecs codecs = new RasterCodecs();
codecs.ThrowExceptionsOnInvalidImages = true;
BlankPageDetectorCommand command = new BlankPageDetectorCommand();
command.Flags = BlankPageDetectorCommandFlags.DetectNoisyPage;
command.Run(image);
return command.IsBlank;
}
点击扫描
_twnSession.SelectSource(cmbDriverName.Text);//选择扫描仪
_twnSession.ImageBitsPerPixel//位深度
TwainProperties props = _twnSession.Properties;
TwainImageEffectsProperties imageEfx = props.ImageEffects;
imageEfx.ColorScheme = TwainColorScheme.BlackWhite;//彩色黑白
imageEfx.Brightness = 182;//亮度对比
imageEfx.Contrast = 4;//亮度对比
props.ImageEffects = imageEfx;
_twnSession.Properties = props;
_twnSession.Resolution = new SizeF(300,300); //dpi
_twnSession.EnableDuplexScanning = true; //单双面
_twnSession.Acquire(TwainUserInterfaceFlags.Show);//扫描 参数为是否弹窗