我试图在Xamarin中清除SkiaSharp中的位图,位图是由SkCanvas绘制的,
new SKCanvas(SkBitmap bitmap)
但有时我需要清除位图数据。
SkCanvas.Clear()
尝试使用SKColor(0,0,0,0)像素填充位图,但是使用现有像素来预测它不会影响它。
SKBitmap.Reset()
不起作用,因为它完全重置了对象,包括大小。 我知道如何以有效的方式实现这一目标,而不是通过遍历所有像素?
答案 0 :(得分:1)
如果您要清除像素数据,则必须清除每个像素。没有办法解决这个问题。
要清除位图/画布,您应该使用SKCanvas.Clear()
,但请记住,您可以传入一种颜色。因此,如果您希望像素数据全为零,则只需SKCanvas.Clear(0)
。
我认为这就是你所要求的,如果不是,我可能需要更多信息。
修改强>
刚刚发生的另一件事是SKBitmap.Erase(SKColor)
。这可能会更好,因为不需要画布。