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