【问题标题】:How to add a text to existing image using skiasharp如何使用skiasharp向现有图像添加文本
【发布时间】:2021-09-30 19:47:59
【问题描述】:

我已将现有图像转换为 base64,我想在其上添加文本。但是,这仅返回原始图像。你能告诉我我在哪里犯错了吗?

var signatureData = Convert.FromBase64String(signature);
            var stream = new MemoryStream(signatureData);
            var signatureBitmap = SKBitmap.Decode(stream);
            var canvas = new SKCanvas(signatureBitmap);
            var origin = new SKPoint();
            var paint = new SKPaint
            {
                TextSize = 10,
                IsAntialias = true,
                Color = SKColors.Black,
                IsStroke = false
            };
            origin.X = 10;
            origin.Y = 30;
            paint.TextAlign = SKTextAlign.Left;
            canvas.DrawText("text", origin, paint);
            canvas.Flush();
            var resultImage = SKImage.FromBitmap(signatureBitmap);
            var data = resultImage.Encode(SKEncodedImageFormat.Png, 100);
            return Convert.ToBase64String(data.ToArray());

【问题讨论】:

  • 在画布上绘制后,您永远不会将其转换为位图。 resultImage 只是对您开始使用的 imageBytes 进行编码。见stackoverflow.com/questions/59392658/…
  • 我已经更新了问题。现在我正在转换位图但仍然是原始图像
  • 不,你在画布之后仍然没有对它做任何事情。请参阅我上一条评论中的链接问题 - 它使用 Snapshot() 方法来捕获画布表面

标签: c# xamarin.forms skiasharp


【解决方案1】:

这个发布的问题实际上对我有用,只是位置不对,所以文字很小

【讨论】:

    猜你喜欢
    • 2021-08-23
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2019-03-23
    相关资源
    最近更新 更多