【发布时间】:2021-10-08 02:37:09
【问题描述】:
我尝试绘制图像,在第一次绘制之后我想反转绘图的颜色。
如果我的新方块的背景是黑色的,我需要白色,如果是白色,我需要黑色。
在我的示例中,我绘制了 3 个正方形并在 x 中偏移了 10 个像素。
不幸的是,它没有产生想要的结果。
using var skBitmap = new SKBitmap(100, 40);
using var skCanvas = new SKCanvas(skBitmap);
skCanvas.Clear(SKColors.White);
var color = SKColors.Black;
float[] invertMatrix = {
-1.0f, 0.0f, 0.0f, 0.0f, 255.0f,
0.0f, -1.0f, 0.0f, 0.0f, 255.0f,
0.0f, 0.0f, -1.0f, 0.0f, 255.0f,
0.0f, 0.0f, 0.0f, 1.0f, 0.0f
};
using var skPaint = new SKPaint();
skPaint.Color = color;
skPaint.Style = SKPaintStyle.Fill;
skCanvas.DrawRect(10, 10, 20, 20, skPaint);
skPaint.ColorFilter = SKColorFilter.CreateColorMatrix(invertMatrix);
//move +10 in x
skCanvas.DrawRect(20, 10, 20, 20, skPaint);
//move +10 in x
skCanvas.DrawRect(30, 10, 20, 20, skPaint);
【问题讨论】:
标签: c# skiasharp colormatrix colormatrixfilter