
c#二维码生成实例并插入logo图片.docx
5页二维码生成实例这是一个简单的二维码生成实例,我们就用 c#的 windows 程序来写吧 1.新建一个 windows 程序,然后引用 ThoughtWorks.QRCode.dll这个 dll 没有可以到网上去copy 一个下来首先画好这样一个界面,界面非常简单,但是太丑一点,我们做好了再放一个皮肤上去接下来我们开始写后台代码吧!using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using ThoughtWorks.QRCode.Codec;using System.IO;using System.Drawing.Imaging;namespace WindowsFormsApplication1{public partial class Form1 : Form{public Form1(){InitializeComponent();}private object logoImg;//用于存放logo图片private void Form1_Load(object sender, EventArgs e){this.skinEngine1.SkinFile = "Calmness.ssk";}/// /// 获取二维码生成图片/// /// public Bitmap getcode(string writeStr){QRCodeEncoder qRCodeEncoder = new QRCodeEncoder();qRCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//设置二维码编码格式qRCodeEncoder.QRCodeScale = 4;//设置编码测量度qRCodeEncoder.QRCodeVersion = 7;//设置编码版本 qRCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;//设置错误校验Bitmap image = qRCodeEncoder.Encode(writeStr); ;return image;}/// /// 获取logo/// /// public Bitmap getlogo(){Bitmap newBmp = new Bitmap("logo.jpg");//获取图片对象Bitmap bmp = new Bitmap(newBmp, 30, 30);//缩放return bmp;}/// /// 二维码保存/// /// /// private void Save_Btn_Click(object sender, EventArgs e){SaveFileDialog saveFile = new SaveFileDialog();//创建保存对话框saveFile.Filter = "JPEG|*.jpeg;*.jpg|位图文件|*.bmp|所有文件|*.*";//设置保存的图片格式if (pictureBox1.Image != null){if (saveFile.ShowDialog() == DialogResult.OK){string sFilePathName = saveFile.FileName;Image img = pictureBox1.Image;img.Save(sFilePathName);}}else{MessageBox.Show("请先生成二维码!");}}/// /// 二维码生成/// /// /// private void ShengCheng_Btn_Click(object sender, EventArgs e){if (Str_Tbx.Text.Trim() != "") //验证输入的生成内容是否为空{Bitmap bCode = getcode(Str_Tbx.Text); //获取二维码图片if (logoImg == null){pictureBox1.Image = bCode;}else{Bitmap bLogo = logoImg as Bitmap; //获取logo图片对象bLogo = new Bitmap(bLogo, 30, 30); //改变图片的大小这里我们设置为30int Y = bCode.Height; int X = bCode.Width;Point point = new Point(X / 2 - 15, Y / 2 - 15);//logo图片绘制到二维码上,这里将简单计算一下logo所在的坐标Graphics g = Graphics.FromImage(bCode);//创建一个画布g.DrawImage(bLogo, point);//将logo图片绘制到二维码图片上pictureBox1.Image = bCode;}}else{MessageBox.Show("输入生成内容!");}}/// /// logo上传/// /// /// private void UpLogo_Btn_Click(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog();//文件打开对话框openFileDialog.Filter = "JPEG|*.jpeg;*.jpg|位图文件|*.bmp|所有文件|*.*";//只能打开我们设置的这几类文件if (openFileDialog.ShowDialog() == DialogResult.OK){string fileName = openFileDialog.FileName;Bitmap newBmp = new Bitmap(fileName);Bitmap bmp = new Bitmap(newBmp);pictureBox1.Image = bmp;logoImg = bmp;}}}}皮肤在这儿就不再多做介绍了,接下来我们来看看成果吧。
