实例介绍
【实例简介】
实例可以成功运行,直接用于二维码的生成还有解析二维码的功能代码。
无需插件,直接解析二维码读取里边的内容。
编码:
命名空间:namespace ewmbm二维码
类名:public class ewmbm二维码编码
可设置变量
1:ewmbm二维码编码.blx类型//编码类型,数字 、字母或者中文(默认 中文)
2:ewmbm二维码编码.bbb版本//数据容量(默认 版本7)
3:ewmbm二维码编码.bjcdj纠错等级//低、中、高、完美(默认 中)
4:ewmbm二维码编码.bfdbs放大倍数//每个数据点宽几个像素(默认 4)
5:ewmbm二维码编码.bmfs编码方式//(默认 UTF8)
准备工作:
将【二维码\Resources】中的所有dat文件,加入资源文件
或者:
将代码中三处读取资源文件的地方改成读取文件也可以,
搜索【btemp = (sbyte[])二维码.Properties.Resources.ResourceManager.GetObject(fileName);】即可找到三处读取资源文件的地方
使用函数:
using ewmbm二维码;
Bitmap btemp = ewmbm二维码.ewmbm二维码编码.drawqr画二维码(string 要编码的文字);
//***********************************************************************
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//***********************************************************************
解码:
命名空间间:namespace ewmjm二维码
类名: public class ewmjm二维码解码
可设置变量
1:ewmjm二维码解码.bmfs编码方式//(默认 UTF8)
使用函数:
using ewmjm二维码;
ewmjm二维码解码 decoder = new ewmjm二维码解码();
string ttemp = decoder.jm解码(Bitmap 要解码的图片);
【实例截图】
【核心代码】
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; using System.Diagnostics; using ewmbm二维码; using ewmjm二维码; namespace 二维码 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void textBox1_TextChanged(object sender, EventArgs e) { qj.srstr输入str = textBox1.Text; qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void button1_Click(object sender, EventArgs e) { SaveFileDialog sg = new SaveFileDialog(); sg.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|PNG Image|*.png|All files (*.*)|*.*"; sg.FilterIndex = 1; sg.RestoreDirectory = true; sg.FileName = string.Empty; if (sg.ShowDialog() == DialogResult.OK) { gbmp.Save(sg.FileName); } } private void button2_Click(object sender, EventArgs e) { textBox2.Text = ""; //openFileDialog1.Filter = "JPeg Image|*.jpg|Bitmap Image|*.bmp|Gif Image|*.gif|PNG Image|*.png|All files (*.*)|*.*"; qj.rwlb任务列表.Add(1); arecsh初始化.Set(); } #region 全局变量 class qj { public static List<byte> rwlb任务列表 = new List<byte>(); public static List<byte> rwlbtemp任务列表 = new List<byte>(); public static string srstr输入str = ""; } #endregion private void Form1_Load(object sender, EventArgs e) { thcsh初始化 = new Thread(txcsh初始化); thcsh初始化.IsBackground = true; thcsh初始化.Priority = ThreadPriority.Lowest; thcsh初始化.Start(); } #region 初始化线程 Thread thcsh初始化; Bitmap gbmp = new Bitmap(10, 10); Graphics g; OpenFileDialog openFileDialog1 = new OpenFileDialog(); AutoResetEvent arecsh初始化 = new AutoResetEvent(false); void txcsh初始化() { int rws = 0; this.Invoke((EventHandler)(delegate { comboBox1.SelectedIndex = 2;//类型 comboBox2.SelectedIndex = 6;//版本 comboBox3.SelectedIndex = 1;//品质 comboBox4.SelectedIndex = 3;//大小 comboBox5.SelectedIndex = 3;//编码方式 })); Stopwatch stw = new Stopwatch(); stw.Start(); stw.Stop(); int itemp = 0; ewmjm二维码解码 decoder = new ewmjm二维码解码(); string tt = ""; while (true) { try { rws = qj.rwlb任务列表.Count; if (rws > 0) { #region 有任务 qj.rwlbtemp任务列表.Clear(); lock (qj.rwlb任务列表) { qj.rwlbtemp任务列表.AddRange(qj.rwlb任务列表.ToArray()); qj.rwlb任务列表.Clear(); } qj.rwlbtemp任务列表 = qj.rwlbtemp任务列表.Distinct().ToList(); rws = qj.rwlbtemp任务列表.Count; for (int iii = 0; iii < rws; iii ) { switch (qj.rwlbtemp任务列表[iii]) { #region case 0:二维码编码 case 0: itemp = (ewmbm二维码.ewmbm二维码编码.bbb版本 * 4 17)*ewmbm二维码.ewmbm二维码编码.bfdbs放大倍数 2; this.Invoke((EventHandler)(delegate { this.Width = itemp 270; this.Height = itemp 100; pictureBox1.Width = itemp; pictureBox1.Height = itemp; })); gbmp = new Bitmap(itemp,itemp); g = Graphics.FromImage(gbmp); g.Clear(Color.White); stw.Reset(); stw.Start(); g.DrawImage(ewmbm二维码编码.drawqr画二维码(qj.srstr输入str), 0, 0); stw.Stop(); g = pictureBox1.CreateGraphics(); g.DrawImage(gbmp, 0, 0); this.Invoke((EventHandler)(delegate { this.Text = stw.Elapsed.ToString(); })); break; #endregion #region case 1:二维码解码 case 1: openFileDialog1.Filter = "图像文件jpg bmp gif png tif Image|*.jpg;*.bmp;*.gif;*.png;*.tif|All files (*.*)|*.*"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; openFileDialog1.FileName = string.Empty; DialogResult dr = DialogResult.Cancel; this.Invoke((EventHandler)(delegate { dr = openFileDialog1.ShowDialog(); })); if (dr == DialogResult.OK) { String fileName = openFileDialog1.FileName; Bitmap bmp = new Bitmap(fileName); this.Invoke((EventHandler)(delegate { this.Width = bmp.Width 270; this.Height = bmp.Height 100; pictureBox1.Width = bmp.Width; pictureBox1.Height = bmp.Height; })); gbmp = new Bitmap(bmp.Width, bmp.Height); g = Graphics.FromImage(gbmp); g.DrawImage(bmp, 0, 0); bmp.Dispose(); pictureBox1.Image = gbmp; } tt = ""; stw.Reset(); stw.Start(); tt = decoder.jm解码(gbmp); stw.Stop(); this.Invoke((EventHandler)(delegate { textBox2.Text = tt; this.Text = stw.Elapsed.ToString(); })); break; #endregion #region case 3:刷新 case 3: g = pictureBox1.CreateGraphics(); g.DrawImage(gbmp, 0, 0); break; #endregion } } #endregion } rws = qj.rwlb任务列表.Count; } catch( Exception ex) { string t = ex.Message; t = ""; } if (rws == 0) { arecsh初始化.WaitOne(1000); } } } #endregion private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { switch (comboBox1.SelectedIndex) { case 0: ewmbm二维码编码.blx类型 = ewmbm二维码.ewmbm二维码编码.ENCODE_MODE.sz数字; break; case 1: ewmbm二维码编码.blx类型 = ewmbm二维码.ewmbm二维码编码.ENCODE_MODE.zmsz字母数字; break; case 2: ewmbm二维码编码.blx类型 = ewmbm二维码.ewmbm二维码编码.ENCODE_MODE.zw中文; break; } qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { ewmbm二维码编码.bbb版本 = comboBox2.SelectedIndex 1; qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) { switch (comboBox3.SelectedIndex) { case 0: ewmbm二维码编码.bjcdj纠错等级 = ewmbm二维码.ewmbm二维码编码.ERROR_CORRECTION.L低; break; case 1: ewmbm二维码编码.bjcdj纠错等级 = ewmbm二维码.ewmbm二维码编码.ERROR_CORRECTION.M中; break; case 2: ewmbm二维码编码.bjcdj纠错等级 = ewmbm二维码.ewmbm二维码编码.ERROR_CORRECTION.H高; break; case 3: ewmbm二维码编码.bjcdj纠错等级 = ewmbm二维码.ewmbm二维码编码.ERROR_CORRECTION.Q完美; break; } qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void comboBox4_SelectedIndexChanged(object sender, EventArgs e) { ewmbm二维码编码.bfdbs放大倍数 = comboBox4.SelectedIndex 1; qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void comboBox5_SelectedIndexChanged(object sender, EventArgs e) { switch (comboBox5.SelectedIndex) { case 0: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.default系统默认; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.default系统默认; break; case 1: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.GB2312; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.GB2312; break; case 2: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.Unicode; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.Unicode; break; case 3: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.UTF8; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.UTF8; break; case 4: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.UTF7; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.UTF7; break; case 5: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.ASCII; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.ASCII; break; case 6: ewmbm二维码编码.bmfs编码方式 = ewmbm二维码.ewmbm二维码编码.encode.UTF32; ewmjm二维码解码.bmfs编码方式 = ewmjm二维码.ewmjm二维码解码.encode.UTF32; break; } qj.rwlb任务列表.Add(0); arecsh初始化.Set(); } private void pictureBox1_Paint(object sender, PaintEventArgs e) { qj.rwlb任务列表.Add(3); arecsh初始化.Set(); } } }
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论