DrawMask将背景图上的绘图区域起始点、要绘制图的起始点、遮罩蒙层的起始点进行对齐,然后对背景图上的绘图矩阵区域执行 Porter-Duff合并操作。 Reference The Go image/draw package - The Go Blog (golang.org)https://blog.golang.org/image-draw)) Porter-Duff docs.microsoft.com/zh-tw/xamarin/xamarin-forms/user-interface/graphics/skiasharp/effects/blend-modes/porter-duff
PoterDuffXfermode Porter-Duff的由来 说来说去,这个到处都是PorterDuff的玩意儿到底是什么意思? Porter-Duff 操作是 1 组 12 项用于描述数字图像合成的基本手法,包括 Clear、Source Only、Destination Only、Source Over、Source In、Source 通过组合使用 Porter-Duff 操作,可完成任意 2D 图像的合成。 Thomas Porter 和 Tom Duff 发表于 1984年原始论文的扫描版本 看到没!
3)PorterDuffXfermode 这是一个非常强大的转换模式,使用它,可以使用图像合成的16条Porter-Duff规则的任意一条来控制Paint如何与已有的Canvas图像进行交互。 xFermode = new PorterDuffXfermode(PorterDuff.Mode.CLEAR);paint.setXfermode(xFermode); 这是使用的最后一个子类,关于16条Porter-Duff
默认是没有 tint 颜色的 android:tintMode 定义 tint 颜色的 Porter-Duff blending 模式,默认值为 src_in android:autoMirrored
默认是没有 tint 颜色的 android:tintMode 定义 tint 颜色的 Porter-Duff blending 模式,默认值为 src_in android:autoMirrored
android:tint(定义该 drawble 线条的颜色,定义了后,你再在路径里面设置颜色就没有作用了) android:tintMode(定义 tint 颜色的 Porter-Duff
[图层的示意] 颜色计算 颜色计算是混流的基本步骤,通常是将像素的颜色表示为RGBA值,然后逐像素进行处理,叠加时颜色计算是线性的,公式一般利用Porter-Duff模型,核心公式如下: 颜色值转换: