如何解决使用 Skia Sharp 创建以文本为中心的完美圆圈
所以我已经尝试过这个例子。 我正在使用 Xamrain 表单,因此这些示例从外观上看是面向 winforms 的,我将如何将其更改为 xamrian 表单。
https://gist.github.com/xoofx/a9d08a37c43f692e65df80a1888c488b
public CircleLabel()
{
var resizefactor = 0.5f;
var bitmap = SKBitmap.Decode("input.jpg");
var toBitmap = new SKBitmap((int)Math.Round(bitmap.Width * resizefactor),(int)Math.Round(bitmap.Height * resizefactor),bitmap.ColorType,bitmap.AlphaType);
var canvas = new SKCanvas(toBitmap);
// Draw a bitmap rescaled
canvas.SetMatrix(SKMatrix.MakeScale(resizefactor,resizefactor));
canvas.DrawBitmap(bitmap,0);
canvas.ResetMatrix();
var font = SKTypeface.FromFamilyName("Arial");
var brush = new SKPaint
{
Typeface = font,TextSize = 64.0f,IsAntialias = true,Color = new SKColor(255,255,255)
};
canvas.DrawText("Jun!",bitmap.Height * resizefactor / 2.0f,brush);
canvas.DrawText("26",brush);
canvas.Flush();
var image = SKImage.FromBitmap(toBitmap);
var data = image.Encode(SKEncodedImageFormat.Jpeg,90);
using (var stream = new FileStream("output.jpg",FileMode.Create,FileAccess.Write))
{
data.Saveto(stream);
}
imageCircle.source = "output.jpg";
data.dispose();
image.dispose();
canvas.dispose();
brush.dispose();
font.dispose();
toBitmap.dispose();
bitmap.dispose();
}
理想情况下,我希望在列表视图中使用它,但不知道如何实现。现在我正在创建一个自定义控件,然后我可以在列表视图中使用它。 我基本上是想重新创建您在 Synfusions 日历组件中看到的紫色圆圈。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。