千家信息网

asp.net如何使用QRCode生成图片中心加Logo或图像的二维码

发表于:2024-09-30 作者:千家信息网编辑
千家信息网最后更新 2024年09月30日,这篇文章给大家分享的是有关asp.net如何使用QRCode生成图片中心加Logo或图像的二维码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:<%@ WebHan
千家信息网最后更新 2024年09月30日asp.net如何使用QRCode生成图片中心加Logo或图像的二维码

这篇文章给大家分享的是有关asp.net如何使用QRCode生成图片中心加Logo或图像的二维码的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

<%@ WebHandler Language="C#" Class="GetQRCode" %>using System;using System.Web;using ThoughtWorks.QRCode.Codec;using ThoughtWorks.QRCode.Codec.Data;using ThoughtWorks.QRCode.Codec.Util;using System.IO;using System.Text;using System.Drawing;using System.Drawing.Drawing2D;public class GetQRCode : IHttpHandler{  public void ProcessRequest(HttpContext context)  {    String data = context.Request["CodeText"];    if (!string.IsNullOrEmpty(data))    {      QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();      qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;      qrCodeEncoder.QRCodeScale = 4;      qrCodeEncoder.QRCodeVersion = 8;      qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;      System.Drawing.Image image = qrCodeEncoder.Encode(data);      System.IO.MemoryStream MStream = new System.IO.MemoryStream();      image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);      System.IO.MemoryStream MStream1 = new System.IO.MemoryStream();      CombinImage(image, context.Server.MapPath("~/images/201292891051540.jpg")).Save(MStream1, System.Drawing.Imaging.ImageFormat.Png);      context.Response.ClearContent();      context.Response.ContentType = "image/png";      context.Response.BinaryWrite(MStream1.ToArray());      //image.Dispose();      MStream.Dispose();      MStream1.Dispose();    }    context.Response.Flush();    context.Response.End();  }  ///   /// 调用此函数后使此两种图片合并,类似相册,有个  /// 背景图,中间贴自己的目标图片  ///   /// 粘贴的源图片  /// 粘贴的目标图片  public static Image CombinImage(Image imgBack, string destImg)  {    Image img = Image.FromFile(destImg);    //照片图片    if (img.Height != 65 || img.Width != 65)    {      img = KiResizeImage(img, 65, 65, 0);    }    Graphics g = Graphics.FromImage(imgBack);    g.DrawImage(imgBack, 0, 0, imgBack.Width, imgBack.Height);   //g.DrawImage(imgBack, 0, 0, 相框宽, 相框高);    //g.FillRectangle(System.Drawing.Brushes.White, imgBack.Width / 2 - img.Width / 2 - 1, imgBack.Width / 2 - img.Width / 2 - 1,1,1);//相片四周刷一层黑色边框    //g.DrawImage(img, 照片与相框的左边距, 照片与相框的上边距, 照片宽, 照片高);    g.DrawImage(img, imgBack.Width / 2 - img.Width / 2, imgBack.Width / 2 - img.Width / 2, img.Width, img.Height);    GC.Collect();    return imgBack;  }  ///   /// Resize图片  ///   /// 原始Bitmap  /// 新的宽度  /// 新的高度  /// 保留着,暂时未用  /// 处理以后的图片  public static Image KiResizeImage(Image bmp, int newW, int newH, int Mode)  {    try    {      Image b = new Bitmap(newW, newH);      Graphics g = Graphics.FromImage(b);      // 插值算法的质量      g.InterpolationMode = InterpolationMode.HighQualityBicubic;      g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);      g.Dispose();      return b;    }    catch    {      return null;    }  }  public bool IsReusable  {    get    {      return false;    }  }}

感谢各位的阅读!关于"asp.net如何使用QRCode生成图片中心加Logo或图像的二维码"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0