我当前正在创建xamarin.forms应用程序。我的一个页面使用skiasharp允许用户以文本标记样式突出显示图像的一部分(即低不透明度的黄色刷子)。
这是定义相关SKPAINT对象的方式:
var strokePaint = new SKPaint()
{
Color = Color.FromRgba(255, 255, 0, 100).ToSKColor(),
Style = SKPaintStyle.Stroke,
StrokeWidth = StrokeWidth
};
到目前为止的工作正常,但是令我困扰的是,当我有多个重叠的路径时,不透明度会"增加",直到某个时候,基础图片不再可见。
我该怎么做才能避免这种重叠?我正在考虑将所有路径合并为一条路径,但这似乎不起作用,因为允许用户在中风之间更改strokewidth,而我看不出任何宽度不同的方法。
。我希望你们中的任何一个对我有帮助。任何想法都将被赞赏!
我对Skia并不非常熟悉,但是我看了Skpaint的文档,看起来它具有BlendMode属性。基于类似事物在其他系统中的工作方式,应该控制颜色的组合方式。您可能必须尝试不同的值才能获得所需的效果。DST或调制看起来像是好候选人。 - Bradley Uffner
感谢您的回答Bradley!我使用了Darken
混合模式,并将不透明度设置为255,这在突出文本时会产生非常好的效果(只有较深的颜色可见,因此在光背景上的深色文本变成了我的标记颜色背景上的深色文字)。/p>