c#二维码生成实例并插入logo图片

c#二维码生成实例并插入logo图片
c#二维码生成实例并插入logo图片

二维码生成实例

这是一个简单的二维码生成实例,我们就用c#的windows程序来写吧。

1.新建一个windows程序,然后引用ThoughtWorks.QRCode.dll。这个dll没有可以到网上去copy一个下来。

首先画好这样一个界面,界面非常简单,但是太丑一点,我们做好了再放一个皮肤上去。

接下来我们开始写后台代码吧!

using System;

using System.Collections.Generic;

using https://www.360docs.net/doc/3b17621171.html,ponentModel;

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); //改变图片的大小这里我们设置为30

int 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;

}

}

}

}

皮肤在这儿就不再多做介绍了,接下来我们来看看成果吧。

相关主题
相关文档
最新文档