微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

skiasharp xamarin 形式:缩放位图上的抗锯齿效果不佳

如何解决skiasharp xamarin 形式:缩放位图上的抗锯齿效果不佳

我正在 Xamarin Forms 中使用 SkiaSharp 绘制位图。抗锯齿效果很差,我想知道如何改进。

源位图具有抗锯齿功能显示在附加图像的左侧。右半部分显示了 Android 设备屏幕截图的一部分。

Source and displayed bitmaps

在左侧部分,请注意锯齿是规则的 - 向上有一点深色羽化,向下有一点浅色羽化,所有这些都是统一的。在右侧,我们仍然可以看到羽化,但它在双宽像素和单宽像素之间交替。

绘制位图时

canvas.DrawBitmap(bmpSrc,rectSrcRight,rectDest,paint);

我已经尝试将 Paint IsAntialiasing() 设置为 true 和 false。无显着差异。

在此示例中,源图像高 61 像素,Android 图像高 102。

我是不是期望太高了?

解决方法

您可以尝试使用以下代码:

SKPaint paint = new SKPaint
{
     IsAntialias = true,FilterQuality = SKFilterQuality.High
};
canvas.DrawBitmap(bmpSrc,rectSrcRight,rectDest,paint);

虽然 IsAntialias 对位图不起作用,但我也添加了它。如果你想不断地绘制位图,它会占用更多的内存。

如果您有更好的方法使其工作并且不占用更多内存,请在此处分享讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。