C#版二维码生成器附皮肤下载
来源:互联网 发布:mysql数据库去重 编辑:程序博客网 时间:2024/05/16 01:12
前言
本文所使用的二维码生成代码是谷歌开源的条形码图像处理库完成的,c#版的代码可去https://code.google.com/p/zxing/downloads/list下载压缩包。
截止目前为止最新版本为2.2,提供以下编码格式的支持:
- UPC-A and UPC-E
- EAN-8 and EAN-13
- Code 39
- Code 93
- Code 128
- QR Code
- ITF
- Codabar
- RSS-14 (all variants)
- Data Matrix
- PDF 417 ('alpha' quality)
- Aztec ('alpha' quality)
同时官网提供了 Android、cpp、C#、iPhone、j2me、j2se、jruby、objc、rim、symbian等多种应用的类库,具体详情可以参考下载的源码包中。
本文已经下载好了,c#版的zxing代码,并编译生成了类库,供程序直接调用。
软件截图及说明
功能说明:1、根据文字输入及时生成二维码,支持保存,打印
2、支持解码,打开二维码文件解码
3、采用IrisSkin4皮肤美化
代码说明
1 public MainForm() 2 { 3 InitializeComponent(); 4 this.skinEngine1.SkinFile = Application.StartupPath + "//skins//SportsGreen.ssk"; 5 this.p1.Visible = true; 6 //this.p2.Visible = false; 7 8 //用于实现PictureBox的鼠标移动过去的提示 9 ToolTip toolTip = new ToolTip();10 toolTip.AutoPopDelay = 5000;//一下4个都是属性11 toolTip.InitialDelay = 1000;12 toolTip.ReshowDelay = 500;13 toolTip.ShowAlways = true;14 toolTip.SetToolTip(this.open, "打开");//参数1是button名,参数2是要显示的内容15 toolTip.SetToolTip(this.save, "保存");16 toolTip.SetToolTip(this.print,"打印二维码");17 toolTip.SetToolTip(this.decod,"解码");18 toolTip.SetToolTip(this.exit,"返回生成二维码");19 }
主窗体显示,皮肤,按钮图表鼠标移动显示提示等代码。
1 //随文本框输入内容生成二维码图片 2 private void txtContent_TextChanged(object sender, EventArgs e) 3 { 4 string content = txtContent.Text; 5 if (content == "") 6 { 7 MessageBox.Show("请输入内容", "警告", MessageBoxButtons.OK, MessageBoxIcon.Error); 8 return; 9 }10 ByteMatrix byteMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200);11 Bitmap bitmap = toBitmap(byteMatrix);12 orpic.Image = bitmap;13 14 }15 //生成图片代码16 public static Bitmap toBitmap(ByteMatrix matrix)17 {18 int width = matrix.Width;19 int height = matrix.Height;20 Bitmap bmap = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb);21 for (int x = 0; x < width; x++)22 {23 for (int y = 0; y < height; y++)24 {25 bmap.SetPixel(x, y, matrix.get_Renamed(x, y) != -1 ? ColorTranslator.FromHtml("0xFF000000") : ColorTranslator.FromHtml("0xFFFFFFFF"));26 }27 }28 return bmap;29 }30 //时间显示代码31 private void timer_Tick(object sender, EventArgs e)32 {33 this.timeshowlable.Text = DateTime.Now.ToString();34 }
随文本框输入内容生成二维码图片及时间显示代码。
1 private void exit_MouseMove(object sender, MouseEventArgs e) 2 { 3 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath+@"\image\exit-1.png"); 4 this.exit.Image = map; 5 } 6 7 private void exit_MouseLeave(object sender, EventArgs e) 8 { 9 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\exit.png");10 this.exit.Image = map;11 }12 13 private void print_MouseMove(object sender, MouseEventArgs e)14 {15 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\print-1.png");16 this.print.Image = map;17 }18 19 private void print_MouseLeave(object sender, EventArgs e)20 {21 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\print.png");22 this.print.Image = map;23 }24 25 private void open_MouseLeave(object sender, EventArgs e)26 {27 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\open.png");28 this.open.Image = map;29 }30 31 private void open_MouseMove(object sender, MouseEventArgs e)32 {33 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\open-1.png");34 this.open.Image = map;35 }36 37 private void save_MouseLeave(object sender, EventArgs e)38 {39 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\save.png");40 this.save.Image = map;41 }42 43 private void save_MouseMove(object sender, MouseEventArgs e)44 {45 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\save-1.png");46 this.save.Image = map;47 }48 49 private void decod_MouseMove(object sender, MouseEventArgs e)50 {51 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\encoding-1.png");52 this.decod.Image = map;53 }54 55 private void decod_MouseLeave(object sender, EventArgs e)56 {57 System.Drawing.Bitmap map = new Bitmap(Application.StartupPath + @"\image\encoding.png");58 this.decod.Image = map;59 }
鼠标移动到按钮图片,图片切换代码。
1 private void open_Click(object sender, EventArgs e) 2 { 3 if (p1.Visible == true) 4 { 5 if (this.openFileDialog1.ShowDialog() != DialogResult.OK) 6 { 7 return; 8 } 9 string path = this.openFileDialog1.FileName; 10 openFileDialog1.DefaultExt = "*.txt"; 11 openFileDialog1.Filter = "*.txt|"; 12 if (path.EndsWith(".txt")) 13 { 14 string content = File.ReadAllText(path, Encoding.Default); 15 this.txtContent.Text = content; 16 } 17 else 18 { 19 MessageBox.Show("只能读取txt文件","提示",MessageBoxButtons.OK,MessageBoxIcon.Error); 20 } 21 } 22 else 23 { 24 if (this.openFileDialog1.ShowDialog() != DialogResult.OK) 25 { 26 return; 27 } 28 string path = this.openFileDialog1.FileName; 29 if (!path.EndsWith(".png")) 30 { 31 MessageBox.Show("图像格式不正确,只能读取png文件", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); 32 } 33 else 34 { 35 Image img = Image.FromFile(path); 36 Bitmap bmap; 37 try 38 { 39 bmap = new Bitmap(img); 40 } 41 catch (System.IO.IOException ioe) 42 { 43 MessageBox.Show(ioe.ToString()); 44 return; 45 } 46 if (bmap == null) 47 { 48 MessageBox.Show("Could not decode image"); 49 return; 50 } 51 else 52 { 53 this.picOpenQr.Image = bmap; 54 } 55 LuminanceSource source = new RGBLuminanceSource(bmap, bmap.Width, bmap.Height); 56 com.google.zxing.BinaryBitmap bitmap = new com.google.zxing.BinaryBitmap(new com.google.zxing.common.HybridBinarizer(source)); 57 Result result; 58 try 59 { 60 result = new MultiFormatReader().decode(bitmap); 61 } 62 catch (ReaderException re) 63 { 64 MessageBox.Show(re.ToString()); 65 return; 66 } 67 68 this.txtDencoder.Text = (result.Text); 69 } 70 } 71 } 72 73 private void save_Click(object sender, EventArgs e) 74 { 75 if (p1.Visible == true) 76 { 77 saveFileDialog1.Filter = "*.png|"; 78 //saveFileDialog1.DefaultExt = "*.png"; 79 saveFileDialog1.RestoreDirectory = true; 80 if (this.saveFileDialog1.ShowDialog() == DialogResult.OK) 81 { 82 string localPath = saveFileDialog1.FileName.ToString(); 83 Image qrcode = orpic.Image; 84 if (qrcode == null) 85 { 86 MessageBox.Show("无保存项", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); 87 } 88 else 89 { 90 if (localPath.EndsWith(".png")) 91 { 92 qrcode.Save(localPath); 93 } 94 else 95 { 96 qrcode.Save(localPath + ".png"); 97 } 98 99 }100 }101 }102 else103 {104 saveFileDialog1.Filter = "*.txt|";105 //saveFileDialog1.DefaultExt = "*.txt";106 if(this.saveFileDialog1.ShowDialog()==DialogResult.OK)107 {108 string localPath = saveFileDialog1.FileName.ToString()+".txt";109 if (File.Exists(localPath))110 {111 DialogResult RESULT = MessageBox.Show("是否确认覆盖原有文件?", "信息提示", MessageBoxButtons.YesNo);112 if (RESULT.ToString().Equals("Yes"))113 {114 File.Delete(localPath);115 File.AppendAllText(localPath, this.txtDencoder.Text, Encoding.Default);116 }117 else118 {119 return;120 }121 }122 else123 {124 File.AppendAllText(localPath, this.txtDencoder.Text, Encoding.Default);125 }126 }127 }128 }129 130 private void exit_Click(object sender, EventArgs e)131 {132 this.p2.Visible = false;133 this.p1.Visible=true;134 }135 136 private void decod_Click(object sender, EventArgs e)137 {138 this.p2.Visible=true;139 this.p1.Visible = !(p1.Visible);140 }
打开,保存,面板切换代码。
- C#版二维码生成器附皮肤下载
- 用草料二维码生成器制作App下载二维码
- 用芝麻二维码生成器制作App下载二维码
- java版的二维码生成器
- 二维码生成器
- 二维码生成器
- 二维码生成器
- 中秋快乐版二维码生成器实现
- c# winfrom 皮肤切换 控件 IrisSkin2.dll 使用 及下载 & 皮肤文件 下载
- android二维码生成器 艺术二维码
- 二维码生成器和二维码扫描器
- C# 皮肤
- C#皮肤
- 二维码生成算法及c#实现(附源码)
- 二维码生成算法及c#实现(附源码)
- Qt编写QUI皮肤生成器
- 二维码C#版
- C#窗体多种皮肤变换图文详解内含皮肤控件下载
- 交流群里遇到的一个小问题
- 解决“Unable to get debug signature key”的办法
- EPOLLIN和EPOLLOUT究竟什么时候触发?
- C++父类定义虚函数其派生类的同名函数使用virtual关键字吗?
- [JAVA]Hibernate 有选择性的更新--控制insert和update语句
- C#版二维码生成器附皮肤下载
- LeetCode Longest Palindromic Substring 最长回文子字符串 两种方法分析解答
- js设置汉字为utf-8的编码
- JDBC读写Oracle10g的CLOB、BLOB
- Mac OS, iOS多线程开发指南,apple官方文档翻译稿
- JAVA System.getProperty("") 获取当前操作系统信息
- linux常用头文件
- C# web实现word 转Html、office转Html、pdf转图片 在线预览文件
- oracle 查看所在操作系统版本