一、dll文件下载
AspriseOCR.dll、DevIL.dll、ILU.dll(点击下载)将其放在生成的bin/Debug生成目录下即可使用。
二、导入图片
通过窗口弹出选择文件,并获取文件路径。
try
{
OpenFileDialog m_Dialog = new OpenFileDialog();
DialogResult result = m_Dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
path = m_Dialog.FileName.Trim();
}
catch
{
System.Windows.MessageBox.Show("图片导入失败");
}
三、引用VC写的dll文件
由于这里引用的dll文件是vc写的,非com组件,所以在引用时采取以下代码。
[DllImport("AspriseOCR.dll", EntryPoint = "OCR", CallingConvention = CallingConvention.Cdecl)]
public static extern IntPtr OCR(string file, int type);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRpart", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRpart(string file, int type, int startX, int startY, int width, int height);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRBarCodes", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRBarCodes(string file, int type);
[DllImport("AspriseOCR.dll", EntryPoint = "OCRpartBarCodes", CallingConvention = CallingConvention.Cdecl)]
static extern IntPtr OCRpartBarCodes(string file, int type, int startX, int startY, int width, int height);
四、识别过程以及结果
调用Marshal.PtrToStringAnsi(OCRpart(path, -1, 0, 0, 728, 365))即可获得结果(string 类型)。
Marshal.PtrToStringAnsi(OCRpart(path, -1, 0, 0, 728, 365));