百度行驶证C++离线SDK V1.1 C#接入
目录
说明
自己根据SDK封装了动态库,然后C#调用。
SDK包结构
效果
项目
代码
using Newtonsoft.Json;
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
namespace CSharpWinformTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const string DllName = "DLSharp.dll";
//行驶证正页
[DllImport(DllName, EntryPoint = "dl_front_init_license", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_init_license(string key, string licenseFile, bool is_remote);
[DllImport(DllName, EntryPoint = "dl_front_create", CallingConvention = CallingConvention.Cdecl)]
internal extern static IntPtr dl_front_create();
[DllImport(DllName, EntryPoint = "dl_front_init", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_init(IntPtr engine, string ini_path);
[DllImport(DllName, EntryPoint = "dl_front_ocr", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);
[DllImport(DllName, EntryPoint = "dl_front_destroy", CallingConvention = CallingConvention.Cdecl)]
internal extern static void dl_front_destroy(IntPtr engine);
//行驶证副页
[DllImport(DllName, EntryPoint = "dl_back_init_license", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_init_license(string key, string licenseFile, bool is_remote);
[DllImport(DllName, EntryPoint = "dl_back_create", CallingConvention = CallingConvention.Cdecl)]
internal extern static IntPtr dl_back_create();
[DllImport(DllName, EntryPoint = "dl_back_init", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_init(IntPtr engine, string ini_path);
[DllImport(DllName, EntryPoint = "dl_back_ocr", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);
[DllImport(DllName, EntryPoint = "dl_back_destroy", CallingConvention = CallingConvention.Cdecl)]
internal extern static void dl_back_destroy(IntPtr engine);
IntPtr front_engine;
IntPtr back_engine;
private void button1_Click(object sender, EventArgs e)
{
if (image_path == "")
{
return;
}
StringBuilder ocr_result1 = new StringBuilder(1024);
StringBuilder ocr_result2 = new StringBuilder(1024);
int res = dl_front_ocr(front_engine, image_path, ocr_result1, ocr_result2);
if (res == 0)
{
Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
}
else
{
textBox1.Text = "识别失败";
}
}
private void Form1_Load(object sender, EventArgs e)
{
string key = "AISEE_xingshizheng_win_0530_3_3";
string licenseFile = Application.StartupPath + "\\license\\license.ini";
int res = -1;
string ini_path = "";
res = dl_front_init_license(key, licenseFile, false);
Console.WriteLine(res.ToString());
front_engine = dl_front_create();
ini_path = Application.StartupPath + "\\resource\\vehiclecard_front_resource";
res = dl_front_init(front_engine, ini_path);
Console.WriteLine(res.ToString());
res = dl_back_init_license(key, licenseFile, false);
Console.WriteLine(res.ToString());
back_engine = dl_back_create();
ini_path = Application.StartupPath + "\\resource\\vehiclecard_back_resource";
res = dl_back_init(back_engine, ini_path);
Console.WriteLine(res.ToString());
image_path = Application.StartupPath + "\\front_images\\2.jpg";
//image_path = Application.StartupPath + "\\back_images\\1.png";
pictureBox1.Image = new Bitmap(image_path);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
dl_front_destroy(front_engine);
dl_back_destroy(back_engine);
}
string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
string image_path = "";
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = fileFilter;
if (ofd.ShowDialog() != DialogResult.OK) return;
pictureBox1.Image = null;
image_path = ofd.FileName;
pictureBox1.Image = new Bitmap(image_path);
textBox1.Text = "";
}
private void button3_Click(object sender, EventArgs e)
{
if (image_path == "")
{
return;
}
StringBuilder ocr_result1 = new StringBuilder(1024);
StringBuilder ocr_result2 = new StringBuilder(1024);
int res = dl_back_ocr(back_engine, image_path, ocr_result1, ocr_result2);
if (res == 0)
{
Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
}
else
{
textBox1.Text = "识别失败";
}
}
private void button4_Click(object sender, EventArgs e)
{
image_path = Application.StartupPath + "\\front_images\\2.jpg";
pictureBox1.Image = new Bitmap(image_path);
}
private void button5_Click(object sender, EventArgs e)
{
image_path = Application.StartupPath + "\\back_images\\1.png";
pictureBox1.Image = new Bitmap(image_path);
}
}
}
using Newtonsoft.Json;
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows.Forms;
namespace CSharpWinformTest
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
const string DllName = "DLSharp.dll";
//行驶证正页
[DllImport(DllName, EntryPoint = "dl_front_init_license", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_init_license(string key, string licenseFile, bool is_remote);
[DllImport(DllName, EntryPoint = "dl_front_create", CallingConvention = CallingConvention.Cdecl)]
internal extern static IntPtr dl_front_create();
[DllImport(DllName, EntryPoint = "dl_front_init", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_init(IntPtr engine, string ini_path);
[DllImport(DllName, EntryPoint = "dl_front_ocr", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_front_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);
[DllImport(DllName, EntryPoint = "dl_front_destroy", CallingConvention = CallingConvention.Cdecl)]
internal extern static void dl_front_destroy(IntPtr engine);
//行驶证副页
[DllImport(DllName, EntryPoint = "dl_back_init_license", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_init_license(string key, string licenseFile, bool is_remote);
[DllImport(DllName, EntryPoint = "dl_back_create", CallingConvention = CallingConvention.Cdecl)]
internal extern static IntPtr dl_back_create();
[DllImport(DllName, EntryPoint = "dl_back_init", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_init(IntPtr engine, string ini_path);
[DllImport(DllName, EntryPoint = "dl_back_ocr", CallingConvention = CallingConvention.Cdecl)]
internal extern static int dl_back_ocr(IntPtr engine, string image_path, StringBuilder ocr_result1, StringBuilder ocr_result2);
[DllImport(DllName, EntryPoint = "dl_back_destroy", CallingConvention = CallingConvention.Cdecl)]
internal extern static void dl_back_destroy(IntPtr engine);
IntPtr front_engine;
IntPtr back_engine;
private void button1_Click(object sender, EventArgs e)
{
if (image_path == "")
{
return;
}
StringBuilder ocr_result1 = new StringBuilder(1024);
StringBuilder ocr_result2 = new StringBuilder(1024);
int res = dl_front_ocr(front_engine, image_path, ocr_result1, ocr_result2);
if (res == 0)
{
Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
}
else
{
textBox1.Text = "识别失败";
}
}
private void Form1_Load(object sender, EventArgs e)
{
string key = "AISEE_xingshizheng_win_0530_3_3";
string licenseFile = Application.StartupPath + "\\license\\license.ini";
int res = -1;
string ini_path = "";
res = dl_front_init_license(key, licenseFile, false);
Console.WriteLine(res.ToString());
front_engine = dl_front_create();
ini_path = Application.StartupPath + "\\resource\\vehiclecard_front_resource";
res = dl_front_init(front_engine, ini_path);
Console.WriteLine(res.ToString());
res = dl_back_init_license(key, licenseFile, false);
Console.WriteLine(res.ToString());
back_engine = dl_back_create();
ini_path = Application.StartupPath + "\\resource\\vehiclecard_back_resource";
res = dl_back_init(back_engine, ini_path);
Console.WriteLine(res.ToString());
image_path = Application.StartupPath + "\\front_images\\2.jpg";
//image_path = Application.StartupPath + "\\back_images\\1.png";
pictureBox1.Image = new Bitmap(image_path);
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
dl_front_destroy(front_engine);
dl_back_destroy(back_engine);
}
string fileFilter = "*.*|*.bmp;*.jpg;*.jpeg;*.tiff;*.tiff;*.png";
string image_path = "";
private void button2_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = fileFilter;
if (ofd.ShowDialog() != DialogResult.OK) return;
pictureBox1.Image = null;
image_path = ofd.FileName;
pictureBox1.Image = new Bitmap(image_path);
textBox1.Text = "";
}
private void button3_Click(object sender, EventArgs e)
{
if (image_path == "")
{
return;
}
StringBuilder ocr_result1 = new StringBuilder(1024);
StringBuilder ocr_result2 = new StringBuilder(1024);
int res = dl_back_ocr(back_engine, image_path, ocr_result1, ocr_result2);
if (res == 0)
{
Object jsonObject = JsonConvert.DeserializeObject(ocr_result1.ToString());
textBox1.Text = JsonConvert.SerializeObject(jsonObject, Newtonsoft.Json.Formatting.Indented);
}
else
{
textBox1.Text = "识别失败";
}
}
private void button4_Click(object sender, EventArgs e)
{
image_path = Application.StartupPath + "\\front_images\\2.jpg";
pictureBox1.Image = new Bitmap(image_path);
}
private void button5_Click(object sender, EventArgs e)
{
image_path = Application.StartupPath + "\\back_images\\1.png";
pictureBox1.Image = new Bitmap(image_path);
}
}
}