#if NET40 || NET461 using Apewer.Internals.QrCode; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; namespace Apewer.Internals.QrCode { internal sealed class QRCodeUtility { public static Bitmap Generate(string argText, int argBlock, QRCodeGenerator.ECCLevel argEccLevel) { var text = argText ?? ""; var block = argBlock > 1 ? argBlock : 1; var ecclevel = argEccLevel; try { var generator = new QRCodeGenerator(); var content = generator.CreateQrCode(text, ecclevel); var qrcode = new QRCode(content); var bitmap = qrcode.GetGraphic(block); return bitmap; } catch { return null; } } /// 生成含有 7% 容错区域的二维码图像,默认色块边长为 10 像素,失败时返回 NULL 值。 public static Bitmap GenerateL(string argText) { return Generate(argText, 10, QRCodeGenerator.ECCLevel.L); } /// 生成含有 7% 容错区域的二维码图像,可指定每个色块的边长,失败时返回 NULL 值。 public static Bitmap GenerateL(string argText, int argBlock) { return Generate(argText, argBlock, QRCodeGenerator.ECCLevel.L); } /// 生成含有 15% 容错区域的二维码图像,默认色块边长为 10 像素,失败时返回 NULL 值。 public static Bitmap GenerateM(string argText) { return Generate(argText, 10, QRCodeGenerator.ECCLevel.M); } /// 生成含有 15% 容错区域的二维码图像,可指定每个色块的边长,失败时返回 NULL 值。 public static Bitmap GenerateM(string argText, int argBlock) { return Generate(argText, argBlock, QRCodeGenerator.ECCLevel.M); } /// 生成含有 25% 容错区域的二维码图像,默认色块边长为 10 像素,失败时返回 NULL 值。 public static Bitmap GenerateQ(string argText) { return Generate(argText, 10, QRCodeGenerator.ECCLevel.Q); } /// 生成含有 25% 容错区域的二维码图像,可指定每个色块的边长,失败时返回 NULL 值。 public static Bitmap GenerateQ(string argText, int argBlock) { return Generate(argText, argBlock, QRCodeGenerator.ECCLevel.Q); } /// 生成含有 30% 容错区域的二维码图像,默认色块边长为 10 像素,失败时返回 NULL 值。 public static Bitmap GenerateH(string argText) { return Generate(argText, 10, QRCodeGenerator.ECCLevel.H); } /// 生成含有 30% 容错区域的二维码图像,可指定每个色块的边长,失败时返回 NULL 值。 public static Bitmap GenerateH(string argText, int argBlock) { return Generate(argText, argBlock, QRCodeGenerator.ECCLevel.H); } } } #endif