如何在 SKBitmap SKiaSharp 中重置位图像素

How can I Reset Bitmap Pixels in SKBitmap SKiaSharp

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

    new SKCanvas(SkBitmap bitmap) 

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

    SkCanvas.Clear() 

尝试用 SKColor(0,0,0,0) 像素填充位图,但用现有像素预乘不会影响它。

    SKBitmap.Reset() 

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

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

要清除bitmap/canvas,您应该使用SKCanvas.Clear(),但请记住,您可以传入颜色。所以如果你想让像素数据全为零,你可以SKCanvas.Clear(0).

我想这就是你要问的,如果不是,我可能需要更多信息。

编辑

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