您的位置:首页 > 编程语言 > ASP

C# ASP.NET 生成二维码、加入图片

2014-06-14 16:12 453 查看
1、利用 ThoughtWorks.QRCode.dll 组件生成(目前比较流行的)

2、话不多说,写了个简单实例(控制台程序),代码如下

using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
const string data = "http://www.csdn.net";                      //二维码写入数据
string filepath = string.Format("d:/{0}.jpg", Guid.NewGuid());  //保存路径

//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = 10;
//设置编码版本
qrCodeEncoder.QRCodeVersion = 0;

//注意编码,防止乱码出现
Image image = qrCodeEncoder.Encode(data, Encoding.UTF8);
image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);

image.Dispose();
}

}
}


3、代码执行后效果图



4、补:二维码中间加入图片,代码如下(控制台程序实例)

using System;
using System.Drawing;
using System.Text;
using ThoughtWorks.QRCode.Codec;

namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
const string data = "http://www.csdn.net";                      //二维码写入数据
string filepath = string.Format("d:/{0}.jpg", Guid.NewGuid());  //保存路径
const string mypic = "d:/menffy.jpg";                           //我的图片
const float multiple = 4;                                       //二维码是图片的4倍

//创建二维码生成类
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
//设置编码模式
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
//设置编码测量度
qrCodeEncoder.QRCodeScale = 50;
//设置编码版本
qrCodeEncoder.QRCodeVersion = 7;

//注意编码,防止乱码出现
Image image = qrCodeEncoder.Encode(data, Encoding.UTF8);
//image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);

//载入我的图片
Image myImage = Image.FromFile(mypic);

//计算图片大小
float w = image.Width / multiple;
float pw = w / myImage.Width;
float ph = w / myImage.Height;

if (pw > ph)
{
pw = ph;
}

int mw = (int)(pw * myImage.Width);
int mh = (int)(pw * myImage.Height);

//计算图片在二维上的x,y坐标
int x = (image.Width - mw) / 2;
int y = (image.Height - mh) / 2;

Graphics graphics = Graphics.FromImage(image);
graphics.DrawImage(myImage, x, y, mw, mh);
image.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg);

image.Dispose();
myImage.Dispose();
graphics.Dispose();
}

}
}


5、加入图片后效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: