如何在 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.
我正在尝试清除 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.