Ubuntu下调用SkiaSharp.QrCode生成二维码图片

  之前的文章《使用SkiaSharp.QrCode生成二维码介绍》介绍了windows平台下调用SkiaSharp.QrCode生成二维码的示例。SkiaSharp是一个跨平台的.net 二维图形库,本文介绍SkiaSharp.QrCode在Ubuntu下的使用方式。
  使用VSCode创建基于.net 6的控制台程序,然后添加SkiaSharp.QrCode引用。
  测试代码还是上篇文章中的代码,如下所示:

	using SkiaSharp.QrCode;
	using SkiaSharp;

	var content = "My IO";
	//创建生成器
	using (var generator = new QRCodeGenerator())
	{
	    // 设置错误校正能力(ECC)级别
	    var qr = generator.CreateQrCode(content, ECCLevel.H);
	 
	    // 创建一个Canvas
	    var info = new SKImageInfo(512, 512);
	    using (var surface = SKSurface.Create(info))
	    {
	        var canvas = surface.Canvas;
	 
	        // 渲染二维码到Canvas
	        canvas.Render(qr, info.Width, info.Height);
	 
	        // 输出到文件
	        using (var image = surface.Snapshot())
	        using (var data = image.Encode(SKEncodedImageFormat.Png, 100))
	        using (var stream = File.OpenWrite(@"QRCode.png"))
	        {
	            data.SaveTo(stream);
	        }
	    }
	}

  程序编译正常,但是运行时报如下错误:
在这里插入图片描述
  百度错误信息没有找到能参考的内容,最后在SkiaSharp的GitHub网站介绍中看到如下的内容,大致意思是说linux版本很多,SkiaSharp项目组无法支持所有版本,他们创建了包含linux支持内容的package:SkiaSharp.NativeAssets.Linux,在linux下可以引用该包。:
在这里插入图片描述  于是在VSCode中添加相应版本的包引用,再运行程序即可正常运行。生成的二维码图片如下所示:

	dotnet add package SkiaSharp.NativeAssets.Linux --version 2.80.3

在这里插入图片描述

参考文献:
[1]https://www.nuget.org/packages/SkiaSharp.NativeAssets.Linux
[2]https://github.com/mono/SkiaSharp

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值