我是靠谱客的博主 迷路冬瓜,最近开发中收集的这篇文章主要介绍c# ThoughtWorks.QRCode 二维码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、使用nuget添加包引用 


	PM>Install-Package ThoughtWorks.QRCode -Version 1.1.0
二、引用命称空间

	using ThoughtWorks.QRCode.Codec;
	using ThoughtWorks.QRCode.Codec.Data;
三、生成代码


/// <summary>
/// 生成二维码(中间不带LOGO)
/// </summary>
/// <param name="absoluteSave">保存的绝对路径</param>
/// <param name="qrdata">要附加的内容</param>
/// <returns></returns>
public void CreateQRCode(string absoluteSave,string qrdata)
{
try
{
QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
encoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
encoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;//错误效验、错误更正(有4个等级)
encoder.QRCodeBackgroundColor = Color.White;
encoder.QRCodeForegroundColor = Color.Black;
System.Drawing.Image image = encoder.Encode(qrdata, Encoding.UTF8);
System.IO.Directory.CreateDirectory(absoluteSave);
image.Save(SaveFilePath, ImageFormat.Png);
image.Dispose()
}
catch (Exception e)
{
//一些操作
}
}



	/// <summary>
/// 生成二维码(中间不带LOGO)
/// </summary>
/// <param name="absoluteSave">保存的绝对路径</param>
/// <param name="qrdata">要附加的内容</param>
/// <returns></returns>
	public void CreateQRCode(string absoluteSave,string qrdata)
{
	try
	
{
	QRCodeEncoder encoder = new QRCodeEncoder();
	encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
	encoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
	encoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
	encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;//错误效验、错误更正(有4个等级)
	encoder.QRCodeBackgroundColor = Color.White;
	encoder.QRCodeForegroundColor = Color.Black;
	System.Drawing.Image image = encoder.Encode(qrdata, Encoding.UTF8);
	System.IO.Directory.CreateDirectory(absoluteSave);
	image.Save(SaveFilePath, ImageFormat.Png);
	image.Dispose()
	
}
	catch (Exception e)
	
{
	//一些操作
	
}
}


/// <summary>
/// 生成二维码(中间带LOGO)
/// </summary>
/// <param name="absoluteSave">保存的绝对路径</param>
/// <param name="qrdata">要附加的内容</param>
///<param name="absoluteSave">保存的绝对路径</param>
/// <returns></returns>
public void CreateQRCode(string absoluteSave, string qrdata, string AbsoluteLogo)
{
try
{
QRCodeEncoder encoder = new QRCodeEncoder();
encoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;//编码方式(注意:BYTE能支持中文,ALPHA_NUMERIC扫描出来的都是数字)
encoder.QRCodeScale = 4;//大小(值越大生成的二维码图片像素越高)
encoder.QRCodeVersion = 0;//版本(注意:设置为0主要是防止编码的字符串太长时发生错误)
encoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;//错误效验、错误更正(有4个等级)
encoder.QRCodeBackgroundColor = Color.White;
encoder.QRCodeForegroundColor = Color.Black;
System.Drawing.Image image = encoder.Encode(qrdata, Encoding.UTF8);
Bitmap btm = new Bitmap(AbsoluteLogo);
Bitmap copyImage = new Bitmap(btm, image.Width / 5, image.Height / 5);
Graphics g = Graphics.FromImage(image);
int x = image.Width / 2 - copyImage.Width / 2;
int y = image.Height / 2 - copyImage.Height / 2;
g.DrawImage(copyImage, x, y);
System.IO.Directory.CreateDirectory(absoluteSave);
image.Save(SaveFilePath, ImageFormat.Png);
image.Dispose();
btm.Dispose();
copyImage.Dispose();
g.Dispose();
}
catch (Exception e)
{
//一些操作
}
}

四、解析二维码


/// <summary>
/// 解析二维码
/// </summary>
/// <param name="absoluteSave">二维码的绝对路径</param>
/// <returns></returns>
public static string DeCode(string AbsoluteQRCodePath)
{
string decodedString = new QRCodeDecoder().decode(new QRCodeBitmapImage(new Bitmap(AbsoluteQRCodePath)), Encoding.UTF8);
return decodedString;
}




最后

以上就是迷路冬瓜为你收集整理的c# ThoughtWorks.QRCode 二维码的全部内容,希望文章能够帮你解决c# ThoughtWorks.QRCode 二维码所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部