.Net Core使用SkiaSharp绘制小程序分享图

 一、前言

  最近因业务需要开发了一款地产类微信小程序,开发的过程中需要实现分享给好友和分享到朋友圈的功能。好友分享可以直接调用微信小程序API来实现,调用时需提供一张5:4的图片,如果不提供则使用默认截图,为了更好的效果我们一般会选择自行生成图片。而分享到朋友圈的功能由于小程序并未开放,则需要我们生成一张长图供用户自行发送朋友圈。下面我以生成好友好享图片为例来讲讲如何在.Net Core环境中使用SkiaSharp绘制图片。

 

(图1:最终效果图)

 

二、SkiaSharp类库介绍

  SkiaSharp是一个基于Google的Skia图形库(https://skia.org/)打造的供.Net平台使用的跨平台的2D绘图API类库。它提供一个全面的2D绘图API,能用在移动端、服务端和桌面端呈现图像。

  目前SkiaSharp可供以下平台使用:

  • .NET Standard 1.3
  • .NET Core
  • Tizen
  • Xamarin.Android
  • Xamarin.iOS
  • Xamarin.tvOS
  • Xamarin.watchOS
  • Xamarin.Mac
  • Windows Classic Desktop (Windows.Forms / WPF)
  • Windows UWP (Desktop / Mobile / Xbox / HoloLens)

  github地址:https://github.com/mono/SkiaSharp

三、准备工作

  1、新建一个.Net Core API项目,这里我命名为ShareImage。

  2、安装SkiaSharp,使用NuGet命令或者包管理器安装:

1
nuget install SkiaSharp

  3、准备底图

  分析最终效果图(图1),找出不会变化的部分,让UI抠下来作为底图。可以将底图保存在项目的Images目录下,我这里存为bg.png。

(图2:底图)

  4、准备字体

  我这里中文部分用了PingFangSC Regular字体,数字部分用了PingFangSC Medium字体。在项目根目录下新建Fonts目录,复制这两种字体,我这里分别命名为PIngfangScRegular.ttf和PingfangScMedium.ttf。由于载入字体是一个耗时的操作,因此我们可以定义一个静态类TypeFace,预先将字体载入。

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信