using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace TwoDimensionCodeNameCard{ public partial class Form1 : Form { private string appPath = System.Windows.Forms.Application.StartupPath "\\"; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.tsInfo.Text = "右键可将二维码名片另存为图片"; this.pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; #region init this.tbCompany.Text = "青岛**软件有限公司"; this.tbAddr.Text = "青岛市市南区香港路100号(266500)"; this.tbUrl.Text = "www.huiyaosoft.com"; this.tbFax.Text = " 86 0532 86887777"; this.tbDepa.Text = "ERP事业部"; this.tbTitle.Text = "技术总监"; this.tbMobile.Text = " 86 18605327777"; this.tbPhone.Text = " 86 0532 86887778"; this.tbMail.Text = "admin@huiyaosoft.com"; this.tbName.Text = "张三"; #endregion } private void btnBuild_Click(object sender, EventArgs e) { buildCode(); //挪车二维码 //Bitmap b = GetTwoDimensionCode("车主:戴先生\r\n联系电话:18511111111\r\n临时停车给您带来的不变敬请谅解!", "扫一扫获取挪车电话", this.pictureBox1.Width, this.pictureBox1.Height, "微软雅黑"); //this.pictureBox1.Image = b; } private void buildCode() { try { StringBuilder card = new StringBuilder(); card.Append("BEGIN:VCARD"); card.Append("\r\nFN:" this.tbName.Text); card.Append("\r\nTITLE:" this.tbTitle.Text); card.Append("\r\nORG:" this.tbCompany.Text ";" this.tbDepa.Text); card.Append("\r\nTEL;CELL:" this.tbMobile.Text); card.Append("\r\nTEL;WORK:" this.tbPhone.Text); card.Append("\r\nTEL;WORK;FAX:" this.tbFax.Text); card.Append("\r\nADR;WORK:" this.tbAddr.Text); card.Append("\r\nURL:" this.tbUrl.Text); card.Append("\r\nEMAIL;WORK:" this.tbMail.Text); card.Append("\r\nNOTE:"); card.Append("\r\nX-QQ:"); card.Append("\r\nPHOTO;ENCODING=b;TYPE=JPEG:"); card.Append("\r\nEND:VCARD\r\n"); //card.ToString() Bitmap b = GetTwoDimensionCode(card.ToString(), string.Empty, this.pictureBox1.Width, this.pictureBox1.Height, "微软雅黑"); this.pictureBox1.Image = b; } catch (Exception ex) { this.tsInfo.Text = ex.Message; } } public static Bitmap GetTwoDimensionCode(string strSource, string text, int width, int height, string fontName) { // 创建Bitmap对象 Bitmap bmp = new Bitmap(width, height); // 从image创建 Graphics对象 Graphics objGraphics = Graphics.FromImage(bmp); // 填上背景色 objGraphics.FillRectangle(Brushes.White, 0, 0, bmp.Width, bmp.Height); // ThoughtWorks.QRCode.Codec.QRCodeEncoder qrCodeEncoder = new ThoughtWorks.QRCode.Codec.QRCodeEncoder(); // 设置编码方法 qrCodeEncoder.QRCodeEncodeMode = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ENCODE_MODE.BYTE; // 设置大小 qrCodeEncoder.QRCodeScale = 3; // 适用于信息量较少的情形,图像越小保存的信息量越少 // qrCodeEncoder.QRCodeScale = 4; // 设置版本 qrCodeEncoder.QRCodeVersion = 0; // 设置错误校验的级别,正因为二维码有纠错能力,才能够加入logo qrCodeEncoder.QRCodeErrorCorrect = ThoughtWorks.QRCode.Codec.QRCodeEncoder.ERROR_CORRECTION.M; Image image = qrCodeEncoder.Encode(strSource, Encoding.GetEncoding("utf-8")); // 写入二维码 int x = (int)(width - image.Width) / 2; int y = (int)(height - image.Height) / 2; objGraphics.DrawImage(image, new Point(x, y)); // 添加Logo图标 image = TwoDimensionCodeNameCard.Properties.Resources.Apps_tux_icon; x = (int)(width - image.Width) / 2; y = (int)(height - image.Height) / 2; objGraphics.DrawImage(image, new Point(x, y)); // 写入字符串 //objGraphics.DrawString(text, new Font(fontName, 13, FontStyle.Bold), // Brushes.Black, new PointF(43, 15)); return bmp; } private void tsmiSave_Click(object sender, EventArgs e) { this.saveFileDialog1.Title = "将二维码名片另存为:"; this.saveFileDialog1.DefaultExt = ".jpg"; this.saveFileDialog1.Filter = "*.jpg|*.jpg"; this.saveFileDialog1.FileName = this.tbName.Text ".jpg"; if (this.saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { this.pictureBox1.Image.Save(this.saveFileDialog1.FileName); } } }}
评论