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

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

new SKCanvas(SkBitmap bitmap)

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

SkCanvas.Clear()

尝试使用SKColor(0,0,0,0)像素填充位图,但是在现有像素的前提下它不会影响它 .

SKBitmap.Reset()

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

回答(1)

3 years ago

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

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

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

EDIT

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