1

我正在尝试在 Xamarin 中清除 SkiaSharp 中的位图,该位图由 SkCanvas 绘制,

    new SKCanvas(SkBitmap bitmap) 

但有时我需要清除位图数据。

    SkCanvas.Clear() 

尝试用 SKColor(0,0,0,0) 像素填充位图,但使用现有像素进行 premul 不会影响它。

    SKBitmap.Reset() 

不起作用,因为它会完全重置对象,包括大小。知道如何以有效的方式实现这一目标,而不是通过所有像素吗?

4

1 回答 1

2

如果您尝试清除像素数据,则必须清除每个像素。没有办法解决这个问题。

要清除位图/画布,您应该使用SKCanvas.Clear(),但请记住,您可以传入颜色。因此,如果您希望像素数据全为零,则只需SKCanvas.Clear(0).

我认为这就是您要问的,如果不是,我可能需要更多信息。

编辑

刚刚发生的另一件事是有一个SKBitmap.Erase(SKColor). 这可能会更好,因为不需要画布。

于 2017-07-14T10:12:00.643 回答