当前位置:   article > 正文

Linux环境下.NetCore项目生成二维码,合并图片(保姆级教程)_c# sixlabors.imagesharp.drawing 画二维码

c# sixlabors.imagesharp.drawing 画二维码

最近灵机一动,准备把之前从window服务器上可以用,但是在linux服务器上用不了的功能点梳理一下。之前用QRCoder生成二维码,合成图片用的是System.Drawing(写的代码还巨复杂),但是在linux环境有问题,直接报错。

解决方案:

生成二维码使用ZXing.Net.Bindings.ImageSharp.V2

 public static Image CreateQRCode(string value, int width = 512, int height = 512)
 {
     var writer = new ZXing.ImageSharp.BarcodeWriter<Rgba32>
     {
         Format = BarcodeFormat.QR_CODE,
         Options = new ZXing.QrCode.QrCodeEncodingOptions
         {
             DisableECI = true,
             CharacterSet = "UTF-8",
             Width = width,
             Margin = 1,
             Height = height
         }
     };
     var image = writer.WriteAsImageSharp<Rgba32>(value);
     return image;
 }

合成2张图片使用SixLabors.ImageSharp.Drawing(里面依赖了SixLabors.ImageSharp)

 /// <summary>
 /// 合并图片(小图合并到大图)
 /// </summary>
 /// <param name="mergeImagePath">需要被合并的图片(小图)</param>
 /// <param name="templateImagePath">模板图片(大图)</param>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <returns></returns>
 public static Image MergeImage(Image mergeImagePath, string templateImagePath, int x, int y)
 {
     // 加载需要合并的图片
     var templateImage = Image.Load(templateImagePath);
     templateImage.Mutate(o =>
     {
         o.DrawImage(mergeImagePath, new Point(x, y), 1);
     });
     return templateImage;
 }

好了,是不是代码简单多了。完美解决.netcore项目的生成二维码,合并图片在linux上的报错问题。希望有所帮助。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/715765
推荐阅读
  

闽ICP备14008679号