/// <summary>
/// 输出一个二维码
/// </summary>
/// <param name="content">生成二维码的内容</param>
/// <param name="width">指定二维码的宽度</param>
/// <param name="height">指定二维码的高度</param>
/// <returns></returns>
public static Image GeneratorQrImage(string content, int width = 300, int height = 300)
{
if (string.IsNullOrWhiteSpace(content))
return null;
EncodingOptions options = new QrCodeEncodingOptions()
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = width,
Height = height,
ErrorCorrection = ErrorCorrectionLevel.H
};
BarcodeWriter writer = new BarcodeWriter()
{
Format = BarcodeFormat.QR_CODE,
Options = options
};
Bitmap bitmap= writer.Write(content);
SaveImage(bitmap,ImgKind.QRCode);
return bitmap;
}
/// <summary>
/// 保存图片
/// </summary>
/// <param name="image"></param>
private static void SaveImage(Image image,ImgKind kind)
{
using (MemoryStream stream = new MemoryStream())
{
try
{
image.Save(stream, ImageFormat.Jpeg);
File.WriteAllBytes(Path.Combine(System.Environment.CurrentDirectory,$"{kind.GetRemark()}.Jpeg"), stream.ToArray());
}
catch (Exception ex)
{
throw;
}
}
}
/// <summary>
/// 图片种类
/// </summary>
private enum ImgKind
{
/// <summary>
/// 验证码
/// </summary>
[Remark("验证码")]
ValidateCode=1,
/// <summary>
/// 二维码
/// </summary>
[Remark("二维码")]
QRCode =2
}
C#/NET封装API 生成二维码【前后端通用】
于 2022-04-28 20:48:41 首次发布