SkiaSharp 在linux下面 能画线,画不出文字

 SKBitmap bmp = new SKBitmap(80, 30);
                using (SKCanvas canvas = new SKCanvas(bmp))
                {
                    //背景色
                    canvas.DrawColor(SKColors.White);

                    using (SKPaint sKPaint = new SKPaint())
                    {
                        sKPaint.TextSize = 25;//字体大小
                        sKPaint.IsAntialias = true;//开启抗锯齿
                        sKPaint.Typeface = SKTypeface.FromFamilyName("Cantarell", 16, 16, SKFontStyleSlant.Italic);//字体
                        SKRect size = new SKRect();
                        sKPaint.MeasureText(zu[0].ToString(), ref size);//计算文字宽度以及高度

                        float temp = (bmp.Width / 4 - size.Size.Width) / 2;
                        float temp1 = bmp.Height - (bmp.Height - size.Size.Height) / 2;
                        Random random = new Random();

                        for (int i = 0; i < 4; i++)
                        {
                            sKPaint.Color = new SKColor((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));
                            canvas.DrawText(zu[i].ToString(), temp + 20 * i, temp1, sKPaint);//画文字
                        }
                        //干扰线
                        for (int i = 0; i < 5; i++)
                        {
                            sKPaint.Color = new SKColor((byte)random.Next(0, 255), (byte)random.Next(0, 255), (byte)random.Next(0, 255));
                            canvas.DrawLine(random.Next(0, 40), random.Next(1, 29), random.Next(41, 80), random.Next(1, 29), sKPaint);
                        }
                    }
                    //页面展示图片
                    using (SKImage img = SKImage.FromBitmap(bmp))
                    {
                        using (SKData p = img.Encode())
                        {
                            return OK(new SkCode() { file = File(p.ToArray(), "image/Png"), cid = cid });
                        }
                    }

这个是参考代码,问题出在

sKPaint.Typeface = SKTypeface.FromFamilyName("Cantarell", 16, 16, SKFontStyleSlant.Italic);//字体

如果是windows 下面,字体换微软雅黑,能显示,如果是linux下面,需要换成linux下面的字体,否则画不出来。

也不抛异常,让我足足搞了一个晚上。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值