概述
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 }
实现效果
转载于:https://www.cnblogs.com/vaejp/p/3780224.html
最后
以上就是烂漫店员为你收集整理的使用ThoughtWorks.QRCode 生成二维码(带logo)的全部内容,希望文章能够帮你解决使用ThoughtWorks.QRCode 生成二维码(带logo)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复