我是靠谱客的博主 烂漫店员,最近开发中收集的这篇文章主要介绍使用ThoughtWorks.QRCode 生成二维码(带logo),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.首先要下载ThoughtWorks.QRCode.dll 文件下载地址: http://www.zhaodll.com/dll/t/201207/121997.html

2.添加ThoughtWorks.QRCode.dll的引用

3.在项目中添加 image 文件夹 放入你的头像! 同时也是放生成的图像。

4.介绍: 纠错能力 · L级:约可纠错7%的数据码字· M级:约可纠错15%的数据码字· Q级:约可纠错25%的数据码字· H级:约可纠错30%的数据码字

   qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M; (纠错级别不是越大越好的!)

代码: 


1 using System;

2 using System.Web;

3 using ThoughtWorks.QRCode.Codec;

4 using ThoughtWorks.QRCode.Codec.Data;

5 using ThoughtWorks.QRCode.Codec.Util;

6 using System.IO;

7 using System.Text;

8 using System.Drawing;

9 using System.Drawing.Drawing2D;
 10
 11 namespace Towma
 12 {
 13
public partial class WebForm1 : System.Web.UI.Page
 14 
{
 15
protected void Page_Load(object sender, EventArgs e)
 16 
{
 17
 18 
}
 19
 20
 21
protected void Button1_Click(object sender, EventArgs e)
 22 
{
 23
create_two(this.TextBox1.Text);
 24 
}
 25
 26
private void create_two(string nr)
 27 
{
 28
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
 29
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
 30
qrCodeEncoder.QRCodeScale = 4;
 31
qrCodeEncoder.QRCodeVersion = 8;
 32
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
 33
System.Drawing.Image image = qrCodeEncoder.Encode(nr);
 34
 35
string filename = string.Format(DateTime.Now.ToString(), "yyyymmddhhmmss");
 36
filename = filename.Replace(" ", "");
 37
filename = filename.Replace(":", "");
 38
filename = filename.Replace("-", "");
 39
filename = filename.Replace(".", "");
 40
filename = filename.Replace("/", "");
 41
CombinImage(image, Server.MapPath("~/image/123456.jpg")).Save(Server.MapPath("~/image/") + filename + ".jpg");
 42
 43
this.Image1.ImageUrl = "~/image/" + filename + ".jpg";
 44
 45 
}
 46
/// <summary>
 47
/// 调用此函数后使此两种图片合并,类似相册,有个
 48
/// 背景图,中间贴自己的目标图片
 49
/// </summary>
 50
/// <param name="imgBack">粘贴的源图片</param>
 51
/// <param name="destImg">粘贴的目标图片</param>
 52
public static Image CombinImage(Image imgBack, string destImg)
 53 
{
 54
Image img = Image.FromFile(destImg);
//照片图片

 55
if (img.Height != 65 || img.Width != 65)
 56 
{
 57
img = KiResizeImage(img, 65, 65, 0);
 58 
}
 59
Graphics g = Graphics.FromImage(imgBack);
 60
 61
g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height);
//g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);
 62
 63
//g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框
 64
 65
//g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);

 66
 67
g.DrawImage(img, imgBack.Width / 2 - img.Width / 2, imgBack.Width / 2 - img.Width / 2, img.Width, img.Height);
 68 
GC.Collect();
 69
return imgBack;
 70 
}
 71
 72
 73
/// <summary>
 74
/// Resize图片
 75
/// </summary>
 76
/// <param name="bmp">原始Bitmap</param>
 77
/// <param name="newW">新的宽度</param>
 78
/// <param name="newH">新的高度</param>
 79
/// <param name="Mode">保留着,暂时未用</param>
 80
/// <returns>处理以后的图片</returns>
 81
public static Image KiResizeImage(Image bmp, int newW, int newH, int Mode)
 82 
{
 83
try
 84 
{
 85
Image b = new Bitmap(newW, newH);
 86
Graphics g = Graphics.FromImage(b);
 87
// 插值算法的质量

 88
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
 89
g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
 90 
g.Dispose();
 91
return b;
 92 
}
 93
catch
 94 
{
 95
return null;
 96 
}
 97 
}
 98
 99
public bool IsReusable
100 
{
101
get
102 
{
103
return false;
104 
}
105 
}
106 
}
107
108
109
110 }
View Code

 

实现效果

 

转载于:https://www.cnblogs.com/vaejp/p/3780224.html

最后

以上就是烂漫店员为你收集整理的使用ThoughtWorks.QRCode 生成二维码(带logo)的全部内容,希望文章能够帮你解决使用ThoughtWorks.QRCode 生成二维码(带logo)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部