C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)

发布时间:2021-08-02 23:25 来源:https://blog.51cto.com/u_11990 阅读:113 作者:wx57ba58dea2328 栏目: web开发

{
//构造二维码写码器
myGraphic.DrawImage(logo,middleL,middleT,middleW,middleH);

myGraphic.FillRectangle(Brushes.White,middleL,middleT,middleW,middleH);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
}
Dictionary<EncodeHintType, object> hint = new Dictionary<EncodeHintType, object>();
/// </summary>
BarcodeWriter barcodeWriter = new BarcodeWriter();
Graphics myGraphic = Graphics.FromImage(bmpimg);
//获取二维码实际尺寸(去掉二维码两边空白后的实际尺寸)

//保存成图片
/// 生成带Logo的二维码
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

调用:

Bitmap logo = new Bitmap(@"H:\桌面\截图\102.jpg");
using (Graphics g=Graphics.FromImage(bmpimg))
//Logo 图片
static void Generate3(string text)
BitMatrix bm = writer.encode(text,BarcodeFormat.QR_CODE,300,300,hint);
Bitmap map = barcodeWriter.Write(bm);

g.DrawImage(map,0,0);

//生成带图片的二维码 Generate3("https://www.baidu.com/"); Generate3("ionic是一个强大的混合式/hybrid HTML5移动开发框架,特点是使用标准的HTML、CSS和JavaScript,开发跨平台的应用 ,只需要几步就可以快速创建您的Ionic应用,创建应用从这里开始");

hint.Add(EncodeHintType.CHARACTER_SET,"UTF-8");
}

 

//白底

/// <summary>

//将img转换成bmp格式,否则后面无法创建Graphics对象
int middleW = Math.Min((int)(rectangle[2] / 3.5), logo.Width);

1.使用ZXint.Net生成带logo的二维码

hint.Add(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);

//计算插入图片的大小和位置
bmpimg.Save(@"H:\桌面\截图\generate3.png",ImageFormat.Png);
Bitmap bmpimg = new Bitmap(map.Width,map.Height,PixelFormat.Format32bppArgb);
{
/// <param></param>
int middleL = (map.Width - middleW) / 2;
int[] rectangle = bm.getEnclosingRectangle();


//将二维码插入图片
int middleH = Math.Min((int)(rectangle[3]/3.5),logo.Height);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

//生成二维码
int middleT = (map.Height - middleH) / 2;

MultiFormatWriter writer = new MultiFormatWriter();

免责声明:本站发布的内容(图片、视频和文字)以原创、来自互联网转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:ts@56dr.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

C#