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

时间:2017-06-29 23:23:19

标签: c# xamarin skiasharp

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

    new SKCanvas(SkBitmap bitmap) 

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

    SkCanvas.Clear() 

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

    SKBitmap.Reset() 

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

1 个答案:

答案 0 :(得分:1)

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

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

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

修改

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