实例介绍
【实例简介】
实例可以成功运行,直接用于二维码的生成还有解析二维码的功能代码。
无需插件,直接解析二维码读取里边的内容。
编码:
命名空间: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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论