colorMethod(枚举) - Lucky-Koishi/KoishiExAPI GitHub Wiki
namespace Koishi;
└enum colorMethod;
该枚举表示颜色(或像素矩阵)进行混合的算法。混合模式即Photoshop里所列出的混合模式,详情可以参照维基百科Blend Mode。
colorMethod对象通常用于执行两个像素矩阵进行叠加(或拼合)的方式。例如:以下代码用于将图层1铺在图层2上,使用线性减淡混合模式:
matrix layer1, layer2;
layer1.loadPNG("OBJ.PNG");
layer2.loadPNG("BKG.PNG");
layer2.putFore(layer1, LINEARDODGE);
layer2.savePNG("OBJ on BGK.PNG");
colorFormat枚举中包含的值如下表所示:
元素 | 整型值 | 描述 |
---|---|---|
LAY | 0 | 覆盖,混合方式:m(a,b)=a。 |
DARKEN | 1 | 变暗,混合方式:m(a,b)=MIN(a,b)。 |
MULTIPLY | 2 | 正片叠底,混合方式:m(a,b)=ab。 |
COLORBURN | 3 | 颜色加深,混合方式:m(a,b)=(a+b-1)/b。 |
LINEARBURN | 4 | 线性加深,混合方式:m(a,b)=a+b-1。 |
LIGHTEN | 5 | 变亮,混合方式:m(a,b)=MAX(a,b)。 |
SCREEN | 6 | 滤色,混合方式:m(a,b)=a+b-ab。 |
COLORDODGE | 7 | 颜色减淡,混合方式:m(a,b)=a/(1-b)。 |
LINEARDODGE | 8 | 线性减淡,混合方式:m(a,b)=a+b。 |
OVERLAY | 9 | 叠加,混合方式:a<0.5时,m(a,b)=2ab;否则m(a,b)=2(a+b-ab)-1。 |
HARDLIGHT | 10 | 强光,混合方式:b<0.5时,m(a,b)=2ab;否则m(a,b)=2(a+b-ab)-1。 |
SOFTLIGHT | 11 | 柔光,混合方式:b<0.5时,m(a,b)=2ab+a²(1-2b);否则m(a,b)=2a(1-b)+√a(2b-1)。 |
VIVIDLIGHT | 12 | 亮光,混合方式:b<0.5时,m(a,b)=(a-1)/2b+1;否则m(a,b)=a/2(1-b)。 |
LINEARLIGHT | 13 | 线性光,混合方式:m(a,b)=a+2b-1。 |
PINLIGHT | 14 | 点光,混合方式:b<0.5时,m(a,b)=MIN(a,2b);否则m(a,b)=MIN(a,2b-1)。 |
HARDMIX | 15 | 实色混合,混合方式:a+b≥1时,m(a,b)=1,否则为0。 |
DIFFER | 16 | 差值,混合方式:m(a,b)=│a-b│。 |
EXCLUSION | 17 | 排除,混合方式:m(a,b)=a+b-2ab。 |