namespace CloudGaming.Core.QrCode.Services;
///
/// 二维码服务
///
[Component(ServiceLifetime.Singleton)]
public class QrCodeService
{
public QrCodeService()
{
}
///
/// 生成二维码图片
///
public void GenerateQRCode()
{
var qrCodeContent = "老铁666";
using var generator = new QRCodeGenerator();
// 创建二维码(并设置纠错能力最高级)
var createQrCode = generator.CreateQrCode(qrCodeContent, ECCLevel.H);
var skImageInfo = new SKImageInfo(300, 300);
// 创建SkiaSharp画布
using var surface = SKSurface.Create(skImageInfo);
var canvas = surface.Canvas;
// 渲染二维码到画布
canvas.Render(createQrCode, skImageInfo.Width, skImageInfo.Height);
using var image = surface.Snapshot();// 获取画布快照
using var data = image.Encode(SKEncodedImageFormat.Png, 100);// 编码画布快照为PNG格式的数据
using var stream = File.OpenWrite(@"MyQRCode.png");
data.SaveTo(stream);// 将数据保存到文件流中,生成二维码图片
}
}