Documentation ¶
Overview ¶
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-26. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Package blendx Created by xuzhuoxi on 2019-05-25. @author xuzhuoxi
Index ¶
- func BlendAddColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendAddRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendBehindColor(S, D color.Color, _ float64, _ bool) color.Color
- func BlendBehindRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
- func BlendClearColor(S, D color.Color, _ float64, _ bool) color.Color
- func BlendClearRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
- func BlendColorBurnColor(S, D color.Color, factor float64, destinationAlpha bool) color.Color
- func BlendColorBurnRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendColorColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendColorDodgeColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendColorDodgeRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendColorRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendCopyColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendCopyRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDarkenColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDarkenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDarkerColorColor(S, D color.Color, _ float64, _ bool) color.Color
- func BlendDarkerColorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
- func BlendDestinationAtopColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDestinationAtopRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDestinationInColor(foreColor, backColor color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDestinationInRGBA(_, _, _, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDestinationOutColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDestinationOutRGBA(_, _, _, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDestinationOverColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDestinationOverRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDifferenceColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDifferenceRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendDissolveColor(S, D color.Color, factor float64, destinationAlpha bool) color.Color
- func BlendDissolveRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, factor float64, _ bool) (R, G, B, A uint32)
- func BlendDivideColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendDivideRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendExclusionColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendExclusionRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendHardLightColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendHardLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendHardMixColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendHardMixRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendHueColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendHueRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendLightenColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendLightenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendLighterColor(foreColor, backColor color.Color, _ float64, _ bool) color.Color
- func BlendLighterColorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
- func BlendLinearBurnColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendLinearBurnRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendLinearDodgeColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendLinearDodgeRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendLinearLightColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendLinearLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendLuminosityColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendLuminosityRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendMultiplyColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendMultiplyRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendNormalColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendNormalRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendNormalThresholdColor(S, D color.Color, factor float64, destinationAlpha bool) color.Color
- func BlendNormalThresholdRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, factor float64, ...) (R, G, B, A uint32)
- func BlendOverlayColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendOverlayRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendPinLightColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendPinLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendPlusDarkerColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendPlusDarkerRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendPlusLighterColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendPlusLighterRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSaturationColor(foreColor, backColor color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSaturationRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendScreenColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendScreenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSoftLightColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSoftLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSourceAtopColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSourceAtopRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSourceInColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSourceInRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSourceOutColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSourceOutRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSourceOverColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSourceOverRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendSubtractColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendSubtractRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendVividLightColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendVividLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func BlendXorColor(S, D color.Color, _ float64, destinationAlpha bool) color.Color
- func BlendXorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
- func RegisterBlendFunc(blendMode BlendMode, funcBlendColor FuncBlendColor, ...)
- type BlendMode
- type FuncBlendColor
- type FuncBlendRGBA
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BlendAddColor ¶
BlendAddColor 增加模式 是将原始图像及混合图像的对应像素取出来并加在一起; R = Min(1, S+D)) R = Min(255, S+D) R = Min(65535, S+D)
func BlendAddRGBA ¶
func BlendAddRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendAddRGBA 增加模式 是将原始图像及混合图像的对应像素取出来并加在一起; R = Min(1, S+D)) R = Min(255, S+D) R = Min(65535, S+D)
func BlendBehindColor ¶
BlendBehindColor 背后模式 最终色和绘图色相同。当在有透明区域的图层上操作时背后模式才会出现,可将绘制的线条放在图层中图像的后面。 这模式被用来在一个图层内透明的部分进行涂画;但当图层里的“保持透明区域”选中时就不可用了。 它只可以在你用涂画工具(画笔,喷枪,图章,历史记录画笔,油漆桶)或是填充命令在图层内的一个对象之后画上阴影或色彩。 当在有透明区域的图层上操作时背后模式才会出现
func BlendBehindRGBA ¶
func BlendBehindRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
BlendBehindRGBA 背后模式 最终色和绘图色相同。当在有透明区域的图层上操作时背后模式才会出现,可将绘制的线条放在图层中图像的后面。 这模式被用来在一个图层内透明的部分进行涂画;但当图层里的“保持透明区域”选中时就不可用了。 它只可以在你用涂画工具(画笔,喷枪,图章,历史记录画笔,油漆桶)或是填充命令在图层内的一个对象之后画上阴影或色彩。 当在有透明区域的图层上操作时背后模式才会出现
func BlendClearColor ¶
BlendClearColor 清除模式 同背后模式一样,当在图层上操作时,清除模式才会出现。利用清除模式可将图层中有像素的部分清除掉。当有图层时,利用清除模式,使用喷漆桶工具可以将图层中的颜色相近的区域清除掉。 可在喷漆桶工具的选项栏中设定“预值”以确定喷漆桶工具所清除的范围。工具选项栏中的“用于所有图层”选项在清除模式下无效。 R = 0
func BlendClearRGBA ¶
func BlendClearRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
BlendClearRGBA 清除模式 同背后模式一样,当在图层上操作时,清除模式才会出现。利用清除模式可将图层中有像素的部分清除掉。当有图层时,利用清除模式,使用喷漆桶工具可以将图层中的颜色相近的区域清除掉。 可在喷漆桶工具的选项栏中设定“预值”以确定喷漆桶工具所清除的范围。工具选项栏中的“用于所有图层”选项在清除模式下无效。 R = 0
func BlendColorBurnColor ¶
BlendColorBurnColor 颜色加深模式 查看每个通道的颜色信息,通过增加“对比度”使底色的颜色变暗来反映绘图色,和白色混合没变化。 除了背景上的较淡区域消失,且图像区域呈现尖锐的边缘特性之外,这种Color Burn模式创建的效果类似于由MuItiply模式创建的效果。 R = S - (1-S) * (1-D) / D R = S - (255-S) * (255-D) / D R = S - (65535-S) * (65535-D) / D (64位图像)
func BlendColorBurnRGBA ¶
func BlendColorBurnRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendColorBurnRGBA 颜色加深模式 查看每个通道的颜色信息,通过增加“对比度”使底色的颜色变暗来反映绘图色,和白色混合没变化。 除了背景上的较淡区域消失,且图像区域呈现尖锐的边缘特性之外,这种Color Burn模式创建的效果类似于由MuItiply模式创建的效果。 R = S - (1-S) * (1-D) / D R = S - (255-S) * (255-D) / D R = S - (65535-S) * (65535-D) / D (64位图像)
func BlendColorColor ¶
BlendColorColor 颜色模式 是采用底色的亮度以及绘图色的色相、饱和度来创建最终色。它可保护原图的灰阶层次,对于图像的色彩微调、给单色和彩色图像着色都非常有用。 HSV = Dh, Ds, Sv
func BlendColorDodgeColor ¶
BlendColorDodgeColor 颜色减淡模式 查看每个通道的颜色信息,通过降低“对比度”使底色的颜色变亮来反映绘图色,和黑色混合没变化。 除了指定在这个模式的层上边缘区域更尖锐,以及在这个模式下着色的笔画之外, Color Dodge模式类似于Screen模式创建的效果。另外,不管何时定义color Dodge模式混合 前景与背景像素,背景图像上的暗区域都将会消失。 R = S + S*D/(1-D) R = S + S*D/(255-D) (32位) R = S + S*D/(65535-D) (64位)
func BlendColorDodgeRGBA ¶
func BlendColorDodgeRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendColorDodgeRGBA 颜色减淡模式 查看每个通道的颜色信息,通过降低“对比度”使底色的颜色变亮来反映绘图色,和黑色混合没变化。 除了指定在这个模式的层上边缘区域更尖锐,以及在这个模式下着色的笔画之外, Color Dodge模式类似于Screen模式创建的效果。另外,不管何时定义color Dodge模式混合 前景与背景像素,背景图像上的暗区域都将会消失。 R = S + S*D/(1-D) R = S + S*D/(255-D) (32位) R = S + S*D/(65535-D) (64位)
func BlendColorRGBA ¶
func BlendColorRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendColorRGBA 颜色模式 是采用底色的亮度以及绘图色的色相、饱和度来创建最终色。它可保护原图的灰阶层次,对于图像的色彩微调、给单色和彩色图像着色都非常有用。 HSV = Dh, Ds, Sv
func BlendCopyColor ¶
BlendCopyColor 覆盖模式 R = S
func BlendCopyRGBA ¶
func BlendCopyRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendCopyRGBA 覆盖模式 R = S
func BlendDarkenColor ¶
BlendDarkenColor 变暗模式 与Lighten相反,将两个图像中更暗的那个被选来作为结果。 用于查找各颜色通道内的颜色信息,并按照像素对比底色和绘图色,那个更暗,便以这种颜色作为此图像最终的颜色,也就是取两个颜色中的暗色作为最终色。亮于底色的颜色被替换,暗于底色的颜色保持不变。 R = min(S, D)
func BlendDarkenRGBA ¶
func BlendDarkenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDarkenRGBA 变暗模式 与Lighten相反,将两个图像中更暗的那个被选来作为结果。 用于查找各颜色通道内的颜色信息,并按照像素对比底色和绘图色,那个更暗,便以这种颜色作为此图像最终的颜色,也就是取两个颜色中的暗色作为最终色。亮于底色的颜色被替换,暗于底色的颜色保持不变。 R = min(S, D)
func BlendDarkerColorColor ¶
BlendDarkerColorColor 深色模式 公式:Dr+Dg+Db>=Sr+Sg+Sb 则 R=S 比较混合色和基色的所有通道值的总和并显示值较小的颜色。“深色”不会生成第三种颜色(可以通过“变暗”混合获得),因为它将从基色和混合色中选取最小的通道值来创建结果色。
func BlendDarkerColorRGBA ¶
func BlendDarkerColorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
BlendDarkerColorRGBA 深色模式 公式:Dr+Dg+Db>=Sr+Sg+Sb 则 R=S 比较混合色和基色的所有通道值的总和并显示值较小的颜色。“深色”不会生成第三种颜色(可以通过“变暗”混合获得),因为它将从基色和混合色中选取最小的通道值来创建结果色。
func BlendDestinationAtopColor ¶
BlendDestinationAtopColor R = S*(1 - Da) + D*Sa R = (S*(255 - Da) + D*Sa) / 255 R = (S*(65535 - Da) + D*Sa) / 65535
func BlendDestinationAtopRGBA ¶
func BlendDestinationAtopRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDestinationAtopRGBA R = S*(1 - Da) + D*Sa R = (S*(255 - Da) + D*Sa) / 255 R = (S*(65535 - Da) + D*Sa) / 65535
func BlendDestinationInColor ¶
func BlendDestinationInColor(foreColor, backColor color.Color, _ float64, destinationAlpha bool) color.Color
BlendDestinationInColor R = D*Sa [0,1] R = D*Sa/255 [0,255] R = D*Sa/65535 [0,65535]
func BlendDestinationInRGBA ¶
func BlendDestinationInRGBA(_, _, _, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDestinationInRGBA R = D*Sa [0,1] R = D*Sa/255 [0,255] R = D*Sa/65535 [0,65535]
func BlendDestinationOutColor ¶
BlendDestinationOutColor R = D*(1 - Sa) [0,1] R = D*(255 - Sa)/255 [0,255] R = D*(65535 - Sa)/65535 [0,65535]
func BlendDestinationOutRGBA ¶
func BlendDestinationOutRGBA(_, _, _, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDestinationOutRGBA R = D*(1 - Sa) [0,1] R = D*(255 - Sa)/255 [0,255] R = D*(65535 - Sa)/65535 [0,65535]
func BlendDestinationOverColor ¶
BlendDestinationOverColor R = S*(1 - Da) + D R = S*(255 - Da)/255 + D R = S*(65535 - Da)/65535 + D
func BlendDestinationOverRGBA ¶
func BlendDestinationOverRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDestinationOverRGBA R = S*(1 - Da) + D R = S*(255 - Da)/255 + D R = S*(65535 - Da)/65535 + D
func BlendDifferenceColor ¶
BlendDifferenceColor 差值模式 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值。与白色混合将使底色反相;与黑色混合则不产生变化。 R = |S - D|
func BlendDifferenceRGBA ¶
func BlendDifferenceRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDifferenceRGBA 差值模式 查看每个通道中的颜色信息,比较底色和绘图色,用较亮的像素点的像素值减去较暗的像素点的像素值。与白色混合将使底色反相;与黑色混合则不产生变化。 R = |S - D|
func BlendDissolveColor ¶
BlendDissolveColor 溶解模式 最终色和绘图色相同,只是根据每个像素点所在的位置的透明度的不同,可随机以绘图色和底色取代。透明度越大,溶解效果就越明显。 使用这种模式,像素仿佛是整个的来自一幅图像或是另一幅,看不出有什么混合的迹象, 如果你想在两幅图像之间达到看不出混合迹象的效果,而又能比使用溶解模式拥有更多的对图案的控制,那么可以在最上面图层上建一个图层蒙版并用纯白色填充它。 这种效果对模拟破损纸的边缘或原图的 “泼溅”类型是重要的。 随机选择一个色
func BlendDissolveRGBA ¶
func BlendDissolveRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, factor float64, _ bool) (R, G, B, A uint32)
BlendDissolveRGBA 溶解模式 最终色和绘图色相同,只是根据每个像素点所在的位置的透明度的不同,可随机以绘图色和底色取代。透明度越大,溶解效果就越明显。 使用这种模式,像素仿佛是整个的来自一幅图像或是另一幅,看不出有什么混合的迹象, 如果你想在两幅图像之间达到看不出混合迹象的效果,而又能比使用溶解模式拥有更多的对图案的控制,那么可以在最上面图层上建一个图层蒙版并用纯白色填充它。 这种效果对模拟破损纸的边缘或原图的 “泼溅”类型是重要的。 随机选择一个色
func BlendDivideColor ¶
BlendDivideColor 划分模式 假设上面图层选择划分,那么所看到的图像是,下面的可见图层根据上面这个图层颜色的纯度,相应减去了同等纯度的该颜色,同时上面颜色的明暗度不同,被减去区域图像明度也不同,上面图层颜色的亮,图像亮度变化就会越小,上面图层越暗,被减区域图像就会越亮。 也就是说,如果上面图层是白色,那么也不会减去颜色也不会提高明度,如果上面图层是黑色,那么所有不纯的颜色都会被减去,只留着最纯的光的三原色,及其混合色,青品黄与白色。 R = S / D [0, 1] R = 255 * S / D [0, 255] R = 65535 * S / D [0, 65535]
func BlendDivideRGBA ¶
func BlendDivideRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendDivideRGBA 划分模式 假设上面图层选择划分,那么所看到的图像是,下面的可见图层根据上面这个图层颜色的纯度,相应减去了同等纯度的该颜色,同时上面颜色的明暗度不同,被减去区域图像明度也不同,上面图层颜色的亮,图像亮度变化就会越小,上面图层越暗,被减区域图像就会越亮。 也就是说,如果上面图层是白色,那么也不会减去颜色也不会提高明度,如果上面图层是黑色,那么所有不纯的颜色都会被减去,只留着最纯的光的三原色,及其混合色,青品黄与白色。 R = S / D [0, 1] R = 255 * S / D [0, 255] R = 65535 * S / D [0, 65535]
func BlendExclusionColor ¶
BlendExclusionColor 排除模式 可生成和差值模式相似的效果,但比差值模式生成的颜色对比度较小,因而颜色较柔和。与白色混合将使底色反相;与黑色混合则不产生变化。 R = S + D - 2*S*D [0,1] R = S + D - S*D/128 [0,255] R = S + D - S*D/32768 [0,65535]
func BlendExclusionRGBA ¶
func BlendExclusionRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendExclusionRGBA 排除模式 可生成和差值模式相似的效果,但比差值模式生成的颜色对比度较小,因而颜色较柔和。与白色混合将使底色反相;与黑色混合则不产生变化。 R = S + D - 2*S*D [0,1] R = S + D - S*D/128 [0,255] R = S + D - S*D/32768 [0,65535]
func BlendHardLightColor ¶
BlendHardLightColor 强光模式 根据绘图色来决定是执行“正片叠底”还是“滤色”模式。当绘图色比50%的灰要亮时,则底色变亮,就执行“滤色”模式一样,这对增加图像的高光非常有帮助; 当绘图色比50%的灰要暗时,则底色变暗,就执行“正片叠底”模式一样,可增加图像的暗部。当绘图色是纯白色或黑色时得到的是纯白色和黑色。此效果与耀眼的聚光灯照在图像上相似。像亮则更亮,暗则更暗。 这种模式实质上同Soft Light模式是一样的。它的效果要比Soft Light模式更强烈一些,同Overlay一样,这种模式 也可以在背景对象的表面模拟图案或文本。 (D<=0.5): R = 2*S*D (D>0.5) : R = 1 - 2*(1-S) * (1-D)
------------
(D<=128): R = S * D / 128 (D >128): R = 255 - (255-S)*(255-D)/128
------------
(D<=128): R = S * D / 32768 (D>128) : R = 65535 - (65535-S)*(65535-D)/32768
func BlendHardLightRGBA ¶
func BlendHardLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendHardLightRGBA 强光模式 根据绘图色来决定是执行“正片叠底”还是“滤色”模式。当绘图色比50%的灰要亮时,则底色变亮,就执行“滤色”模式一样,这对增加图像的高光非常有帮助; 当绘图色比50%的灰要暗时,则底色变暗,就执行“正片叠底”模式一样,可增加图像的暗部。当绘图色是纯白色或黑色时得到的是纯白色和黑色。此效果与耀眼的聚光灯照在图像上相似。像亮则更亮,暗则更暗。 这种模式实质上同Soft Light模式是一样的。它的效果要比Soft Light模式更强烈一些,同Overlay一样,这种模式 也可以在背景对象的表面模拟图案或文本。 (D<=0.5): R = 2*S*D (D>0.5) : R = 1 - 2*(1-S) * (1-D)
------------
(D<=128): R = S * D / 128 (D >128): R = 255 - (255-S)*(255-D)/128
------------
(D<=128): R = S * D / 32768 (D>128) : R = 65535 - (65535-S)*(65535-D)/32768
func BlendHardMixColor ¶
BlendHardMixColor 实色混合模式 根据绘图颜色与底图颜色的颜色数值相加,当相加的颜色数值大于该颜色模式颜色数值的最大值,混合颜色为最大值; 当相加的颜色数值小于该颜色模式颜色数值的最大值,混合颜色为0; 当相加的颜色数值等于该颜色模式颜色数值的最大值,混合颜色由底图颜色决定,底图颜色值比绘图颜色的颜色值大,则混合颜色为最大值,相反则为0.实色混合能产生颜色较少、边缘较硬的图像效果。 R = S+D>=1 ? 1 : 0 R = S+D>=255 ? 255 : 0 R = S+D>=65535 ? 65535 : 0
func BlendHardMixRGBA ¶
func BlendHardMixRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendHardMixRGBA 实色混合模式 根据绘图颜色与底图颜色的颜色数值相加,当相加的颜色数值大于该颜色模式颜色数值的最大值,混合颜色为最大值; 当相加的颜色数值小于该颜色模式颜色数值的最大值,混合颜色为0; 当相加的颜色数值等于该颜色模式颜色数值的最大值,混合颜色由底图颜色决定,底图颜色值比绘图颜色的颜色值大,则混合颜色为最大值,相反则为0.实色混合能产生颜色较少、边缘较硬的图像效果。 R = S+D>=1 ? 1 : 0 R = S+D>=255 ? 255 : 0 R = S+D>=65535 ? 65535 : 0
func BlendHueColor ¶
BlendHueColor 色相模式 是采用底色的亮度、饱和度以及绘图色的色相来创建最终色。 HSV = Dh, Ss, Sv
func BlendHueRGBA ¶
func BlendHueRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendHueRGBA 色相模式 是采用底色的亮度、饱和度以及绘图色的色相来创建最终色。 HSV = Dh, Ss, Sv
func BlendLightenColor ¶
BlendLightenColor 变亮模式 与Darken相反,取两个像素中更亮的作为结果。 查看每个通道的颜色信息,并按照像素对比两个颜色,那个更亮,便以这种颜色作为此像素最终的颜色,也就是取两个颜色中的亮色作为最终色。绘图色中亮于底色的颜色被保留,暗于底色的颜色被替换。 R = Max(S, D)
func BlendLightenRGBA ¶
func BlendLightenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendLightenRGBA 变亮模式 与Darken相反,取两个像素中更亮的作为结果。 查看每个通道的颜色信息,并按照像素对比两个颜色,那个更亮,便以这种颜色作为此像素最终的颜色,也就是取两个颜色中的亮色作为最终色。绘图色中亮于底色的颜色被保留,暗于底色的颜色被替换。 R = Max(S, D)
func BlendLighterColor ¶
BlendLighterColor 浅色模式 公式:Dr+Dg+Db+Da >= Sr+Sg+Sb+Sa 则 R=D 比较混合色和基色的所有通道值的总和并显示值较大的颜色。“浅色”不会生成第三种颜色(可以通过“变亮”混合获得),因为它将从基色和混合色中选取最大的通道值来创建结果色。
func BlendLighterColorRGBA ¶
func BlendLighterColorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, _ bool) (R, G, B, A uint32)
BlendLighterColorRGBA 浅色模式 公式:Dr+Dg+Db+Da >= Sr+Sg+Sb+Sa 则 R=D 比较混合色和基色的所有通道值的总和并显示值较大的颜色。“浅色”不会生成第三种颜色(可以通过“变亮”混合获得),因为它将从基色和混合色中选取最大的通道值来创建结果色。
func BlendLinearBurnColor ¶
BlendLinearBurnColor 线性加深模式 查看每个通道的颜色信息,通过降低“亮度”使底色的颜色变暗来反映绘图色,和白色混合没变化。 R = S + D - 1 R = S + D - 255 R = S + D - 65535
func BlendLinearBurnRGBA ¶
func BlendLinearBurnRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendLinearBurnRGBA 线性加深模式 查看每个通道的颜色信息,通过降低“亮度”使底色的颜色变暗来反映绘图色,和白色混合没变化。 R = S + D - 1 R = S + D - 255 R = S + D - 65535
func BlendLinearDodgeColor ¶
BlendLinearDodgeColor 线性减淡模式 查看每个通道的颜色信息,通过增加“亮度”使底色的颜色变亮来反映绘图色,和黑色混合没变化。 R = S + D
func BlendLinearDodgeRGBA ¶
func BlendLinearDodgeRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendLinearDodgeRGBA 线性减淡模式 查看每个通道的颜色信息,通过增加“亮度”使底色的颜色变亮来反映绘图色,和黑色混合没变化。 R = S + D
func BlendLinearLightColor ¶
BlendLinearLightColor 线性光模式 根据绘图色通过增加或降低“亮度”,加深或减淡颜色。如果绘图色比50%的灰亮,图像通过增加亮度被照亮,如果绘图色比50%的灰暗,图像通过降低亮度变暗。 R = S + 2*D - 1 R = S + 2*D - 255 R = S + 2*D - 65535
func BlendLinearLightRGBA ¶
func BlendLinearLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendLinearLightRGBA 线性光模式 根据绘图色通过增加或降低“亮度”,加深或减淡颜色。如果绘图色比50%的灰亮,图像通过增加亮度被照亮,如果绘图色比50%的灰暗,图像通过降低亮度变暗。 R = S + 2*D - 1 R = S + 2*D - 255 R = S + 2*D - 65535
func BlendLuminosityColor ¶
BlendLuminosityColor 亮度模式 是采用底色的色相和饱和度以及绘图色的亮度来创建最终色。此模式创建于颜色模式相反效果。 注: “差值”、“排除”、“色相”、“饱和度”、“颜色”和“明度”模式都不能与专色相混合,而且对于多数混合模式而言,指定为 100% K 的黑色会挖空下方图层中的颜色。请不要使用 100% 黑色,应改为使用 CMYK 值来指定复色黑。 HSV = Sh, Ss, Dv
func BlendLuminosityRGBA ¶
func BlendLuminosityRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendLuminosityRGBA 亮度模式 是采用底色的色相和饱和度以及绘图色的亮度来创建最终色。此模式创建于颜色模式相反效果。 注: “差值”、“排除”、“色相”、“饱和度”、“颜色”和“明度”模式都不能与专色相混合,而且对于多数混合模式而言,指定为 100% K 的黑色会挖空下方图层中的颜色。请不要使用 100% 黑色,应改为使用 CMYK 值来指定复色黑。 HSV = Sh, Ss, Dv
func BlendMultiplyColor ¶
BlendMultiplyColor 正片叠底 此模式就象是将两副透明的图像重叠夹在一起放在一张发光的桌子上。 将两个颜色的像素值相乘,然后除以255得到的结果就是最终色的像素值。通常执行正片叠底模式后的颜色比原来两种颜色都深。 任何颜色和黑色正片叠底得到的仍然是黑色,任何颜色和白色执行正片叠底则保持原来的颜色不变,而与其他颜色执行此模式会产生暗室中以此种颜色照明的效果。 在Multiply模式 中应用较淡的颜色对图像的最终像素颜色没有影响。 MuItiply模式模拟阴影是很捧的。现实 中的阴影从来也不会描绘出比源材料(阴影)或背景(获得阴影的区域)更淡的颜色或色调的 特征。用户将在本章中使用MuItiply模式在恢复的图像中对Lee加入一个下拉阴影。 在RGB模式下,每一个像素点的色阶范围是0-255(或0-65535),纯黑色的色阶值是0,纯白色的色阶值是255。 R = S*D [0,1] R = S*D/255 [0,255] R = S*D/65535 [0,65535]
func BlendMultiplyRGBA ¶
func BlendMultiplyRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendMultiplyRGBA 正片叠底 此模式就象是将两副透明的图像重叠夹在一起放在一张发光的桌子上。 将两个颜色的像素值相乘,然后除以255得到的结果就是最终色的像素值。通常执行正片叠底模式后的颜色比原来两种颜色都深。 任何颜色和黑色正片叠底得到的仍然是黑色,任何颜色和白色执行正片叠底则保持原来的颜色不变,而与其他颜色执行此模式会产生暗室中以此种颜色照明的效果。 在Multiply模式 中应用较淡的颜色对图像的最终像素颜色没有影响。 MuItiply模式模拟阴影是很捧的。现实 中的阴影从来也不会描绘出比源材料(阴影)或背景(获得阴影的区域)更淡的颜色或色调的 特征。用户将在本章中使用MuItiply模式在恢复的图像中对Lee加入一个下拉阴影。 在RGB模式下,每一个像素点的色阶范围是0-255(或0-65535),纯黑色的色阶值是0,纯白色的色阶值是255。 R = S*D [0,1] R = S*D/255 [0,255] R = S*D/65535 [0,65535]
func BlendNormalColor ¶
BlendNormalColor 正常模式 是默认的状态,其最终色和绘图色相同。可通过改变画笔工具选项栏中的“不透明度”来设定不同的透明度。当图像的颜色模式是“位图”或“索引颜色”时,“正常”模式就变成“阈值”模式。 在基色存在透明度a%时,混合的运算方式是:最终色=基色*a% + 混合色*(1-a%)。 R = S*(1-Da) + D*Da
func BlendNormalRGBA ¶
func BlendNormalRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendNormalRGBA 正常模式 是默认的状态,其最终色和绘图色相同。可通过改变画笔工具选项栏中的“不透明度”来设定不同的透明度。当图像的颜色模式是“位图”或“索引颜色”时,“正常”模式就变成“阈值”模式。 在基色存在透明度a%时,混合的运算方式是:最终色=基色*a% + 混合色*(1-a%)。 R = S*(1-Da) + D*Da
func BlendNormalThresholdColor ¶
BlendNormalThresholdColor 阈值模式 是默认的状态,其最终色和绘图色相同。可通过改变画笔工具选项栏中的“不透明度”来设定不同的透明度。当图像的颜色模式是“位图”或“索引颜色”时,“正常”模式就变成“阈值”模式。 在基色存在透明度a%时,混合的运算方式是:最终色=基色*a% + 混合色*(1-a%)。 R = S*(1-factor) + D*factor
func BlendNormalThresholdRGBA ¶
func BlendNormalThresholdRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, factor float64, destinationAlpha bool) (R, G, B, A uint32)
BlendNormalThresholdRGBA 阈值模式 是默认的状态,其最终色和绘图色相同。可通过改变画笔工具选项栏中的“不透明度”来设定不同的透明度。当图像的颜色模式是“位图”或“索引颜色”时,“正常”模式就变成“阈值”模式。 在基色存在透明度a%时,混合的运算方式是:最终色=基色*a% + 混合色*(1-a%)。 R = S*(1-factor) + D*factor
func BlendOverlayColor ¶
BlendOverlayColor 叠加模式 在保留底色明暗变化的基础上使用“正片叠底”或“滤色”模式,绘图的颜色被叠加到底色上,但保留底色的高光和阴影部分。底色的颜色没有被取代,而是和绘图色混合来体现原图的亮部和暗部。 使用此模式可使底色的图像的饱和度及对比度得到相应的提高,使图像看起来更加鲜亮。 这种模式以一种非艺术逻辑的方式把放置或应用到一个层上的颜色同背景色进行混 合,然而,却能得到有趣的效果。背景图像中的纯黑色或纯白色区域无法在Overlay模式下 显示层上的Overlay着色或图像区域。 背景区域上落在黑色和白色之间的亮度值同0verlay 材料的颜色混合在一起,产生最终的合成颜色。为了使背景图像看上去好像是同设计或文本 一起拍摄的,Overlay可用来在背景图像上画上一个设计或文本。 R = S<=0.5 ? 2*S*D : 1-2*(1-S)*(1-D) R = S<=128 ? S*D/128 : 255-(255-S)*(255-d)/128 R = S<=32768 ? S*D/32768 : 65535-(65535-S)*(65534-D)/32768
func BlendOverlayRGBA ¶
func BlendOverlayRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendOverlayRGBA 叠加模式 在保留底色明暗变化的基础上使用“正片叠底”或“滤色”模式,绘图的颜色被叠加到底色上,但保留底色的高光和阴影部分。底色的颜色没有被取代,而是和绘图色混合来体现原图的亮部和暗部。 使用此模式可使底色的图像的饱和度及对比度得到相应的提高,使图像看起来更加鲜亮。 这种模式以一种非艺术逻辑的方式把放置或应用到一个层上的颜色同背景色进行混 合,然而,却能得到有趣的效果。背景图像中的纯黑色或纯白色区域无法在Overlay模式下 显示层上的Overlay着色或图像区域。 背景区域上落在黑色和白色之间的亮度值同0verlay 材料的颜色混合在一起,产生最终的合成颜色。为了使背景图像看上去好像是同设计或文本 一起拍摄的,Overlay可用来在背景图像上画上一个设计或文本。 R = S<=0.5 ? 2*S*D : 1-2*(1-S)*(1-D) R = S<=128 ? S*D/128 : 255-(255-S)*(255-d)/128 R = S<=32768 ? S*D/32768 : 65535-(65535-S)*(65534-D)/32768
func BlendPinLightColor ¶
BlendPinLightColor 点光模式 根据绘图色替换颜色。如果绘图色比50%的灰要亮,绘图色被替换,比绘图色亮的像素不变化。如果绘图色比50%的灰要暗比绘图色亮的像素被替换,比绘图色暗的像素不变化,点光模式对图像增加特殊效果非常有用。 R = D>0.5 ? Min(S, 2*D-1) : S R = D>128 ? Min(S, 2*D-255) : S R = D>32768 ? Min(S, 2*D-65535) : S
func BlendPinLightRGBA ¶
func BlendPinLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendPinLightRGBA 点光模式 根据绘图色替换颜色。如果绘图色比50%的灰要亮,绘图色被替换,比绘图色亮的像素不变化。如果绘图色比50%的灰要暗比绘图色亮的像素被替换,比绘图色暗的像素不变化,点光模式对图像增加特殊效果非常有用。 R = D>0.5 ? Min(S, 2*D-1) : S R = D>128 ? Min(S, 2*D-255) : S R = D>32768 ? Min(S, 2*D-65535) : S
func BlendPlusDarkerColor ¶
BlendPlusDarkerColor R = MAX(0, (1 - D) + (1 - S)) [0,1] R = MAX(0, (255-D) + (255-S)) [0,255] R = MAX(0, (65535-D) + (65535-S)) [0,65535]
func BlendPlusDarkerRGBA ¶
func BlendPlusDarkerRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendPlusDarkerRGBA R = MAX(0, (1 - D) + (1 - S)) [0,1] R = MAX(0, (255-D) + (255-S)) [0,255] R = MAX(0, (65535-D) + (65535-S)) [0,65535]
func BlendPlusLighterColor ¶
BlendPlusLighterColor R = MIN(1, S + D) [0,1] R = MIN(255, S + D) [0,255] R = MIN(65535, S + D) [0,65535]
func BlendPlusLighterRGBA ¶
func BlendPlusLighterRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendPlusLighterRGBA R = MIN(1, S + D) [0,1] R = MIN(255, S + D) [0,255] R = MIN(65535, S + D) [0,65535]
func BlendSaturationColor ¶
func BlendSaturationColor(foreColor, backColor color.Color, _ float64, destinationAlpha bool) color.Color
BlendSaturationColor 饱和度模式 是采用底色的亮度、色相以及绘图色的饱和度来创建最终色。如果绘图色的饱和度为0,则原图没有变化。 在把纯蓝色应用到一个灰暗的背景图像中时,显出了背景中 的原始纯色,但蓝色并未加入到合成图像中。如果选择一种中性颜色(一种并不显示主流色 度的颜色),对背景图像不发生任何变化。 Saturation模式可用来显出图像中颜色强度已经由 于岁月变得灰暗的底层颜色。 HSV = Sh, Ds, Sv
func BlendSaturationRGBA ¶
func BlendSaturationRGBA(Sr, Sg, Sb, _ uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSaturationRGBA 饱和度模式 是采用底色的亮度、色相以及绘图色的饱和度来创建最终色。如果绘图色的饱和度为0,则原图没有变化。 在把纯蓝色应用到一个灰暗的背景图像中时,显出了背景中 的原始纯色,但蓝色并未加入到合成图像中。如果选择一种中性颜色(一种并不显示主流色 度的颜色),对背景图像不发生任何变化。 Saturation模式可用来显出图像中颜色强度已经由 于岁月变得灰暗的底层颜色。 HSV = Sh, Ds, Sv
func BlendScreenColor ¶
BlendScreenColor 滤色模式 作用结果和正片叠底刚好相反,它是将两个颜色的互补色的像素值相乘,然后除以255得到的最终色的像素值。通常执行滤色模式后的颜色都较浅。任何颜色和黑色执行滤色,原色不受影响;任何颜色和白色执行滤色得到的是白色;而与其他颜色执行滤色会产生漂白的效果。 此屏幕模式对于在图像中创建霓虹辉光效果是有用的。如果在层上围绕背景对象的边缘涂了白色(或任何淡颜色),然后指定层Screen模式,通过调节层的opacity设置就能 获得饱满或稀薄的辉光效果。 (附:在Screen和Multiply运算中的重点是----两幅图做Screen运算会加强亮的部分;做Multipy运算则会加强两幅图中暗的部分) R = 1 - (1 - S)*(1 - D) R = 255 - (255-S)*(255-D) / 255 R = 65535 - (65535-S)*(65535-D) / 65535
func BlendScreenRGBA ¶
func BlendScreenRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendScreenRGBA 滤色模式 作用结果和正片叠底刚好相反,它是将两个颜色的互补色的像素值相乘,然后除以255得到的最终色的像素值。通常执行滤色模式后的颜色都较浅。任何颜色和黑色执行滤色,原色不受影响;任何颜色和白色执行滤色得到的是白色;而与其他颜色执行滤色会产生漂白的效果。 此屏幕模式对于在图像中创建霓虹辉光效果是有用的。如果在层上围绕背景对象的边缘涂了白色(或任何淡颜色),然后指定层Screen模式,通过调节层的opacity设置就能 获得饱满或稀薄的辉光效果。 (附:在Screen和Multiply运算中的重点是----两幅图做Screen运算会加强亮的部分;做Multipy运算则会加强两幅图中暗的部分) R = 1 - (1 - S)*(1 - D) R = 255 - (255-S)*(255-D) / 255 R = 65535 - (65535-S)*(65535-D) / 65535
func BlendSoftLightColor ¶
BlendSoftLightColor 柔光模式 根据绘图色的明暗程度来决定最终色是变亮还是变暗,当绘图色比50%的灰要亮时,则底色图像变亮。当绘图色比50%的灰要暗时,则底色图像就变暗。如果绘图色有纯黑色或纯白色,最终色不是黑色或白色,而是稍微变暗或变亮。 如果底色是纯白色或纯黑色,不产生任何效果。此效果与发散的聚光灯照在图像上相似。 (F<=0.5): R = 2*S*D + S*S*(1-2*D) (F>0.5) : R = 2*S*(1-D) + (2*D - 1)*√S
(D<=128): R = S*D/128 + (255-2*D)*S*S/65025 (D>128) : R = S*(255-D)/128 + (2*D-255)*√(S/255)
(D<=128): R = S*D/32768 + (65535-2*D)*S*S/4294836225 (D>128) : R = S*(65535-D)/32768 + (2*D-65535)*√(S/65535)
func BlendSoftLightRGBA ¶
func BlendSoftLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSoftLightRGBA 柔光模式 根据绘图色的明暗程度来决定最终色是变亮还是变暗,当绘图色比50%的灰要亮时,则底色图像变亮。当绘图色比50%的灰要暗时,则底色图像就变暗。如果绘图色有纯黑色或纯白色,最终色不是黑色或白色,而是稍微变暗或变亮。 如果底色是纯白色或纯黑色,不产生任何效果。此效果与发散的聚光灯照在图像上相似。 (F<=0.5): R = 2*S*D + S*S*(1-2*D) (F>0.5) : R = 2*S*(1-D) + (2*D - 1)*√S
(D<=128): R = S*D/128 + (255-2*D)*S*S/65025 (D>128) : R = S*(255-D)/128 + (2*D-255)*√(S/255)
(D<=128): R = S*D/32768 + (65535-2*D)*S*S/4294836225 (D>128) : R = S*(65535-D)/32768 + (2*D-65535)*√(S/65535)
func BlendSourceAtopColor ¶
BlendSourceAtopColor R = S*Da + D*(1 - Sa) R = (S*Da + D*(255 - Sa))/255 R = (S*Da + D*(65535 - Sa))/65535
func BlendSourceAtopRGBA ¶
func BlendSourceAtopRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSourceAtopRGBA R = S*Da + D*(1 - Sa) R = (S*Da + D*(255 - Sa))/255 R = (S*Da + D*(65535 - Sa))/65535
func BlendSourceInColor ¶
BlendSourceInColor R = S*Da R = S*Da/255 R = S*Da/65535
func BlendSourceInRGBA ¶
func BlendSourceInRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSourceInRGBA R = S*Da R = S*Da/255 R = S*Da/65535
func BlendSourceOutColor ¶
BlendSourceOutColor R = S*(1 - Da) R = S*(255 - Da)/255 R = S*(65535 - Da)/65535
func BlendSourceOutRGBA ¶
func BlendSourceOutRGBA(Sr, Sg, Sb, Sa uint32, _, _, _, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSourceOutRGBA R = S*(1 - Da) R = S*(255 - Da)/255 R = S*(65535 - Da)/65535
func BlendSourceOverColor ¶
BlendSourceOverColor R = D*(1 - Sa) + S R = D*(1 - Sa)/255 + S R = D*(1 - Sa)/65535 + S
func BlendSourceOverRGBA ¶
func BlendSourceOverRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSourceOverRGBA R = D*(1 - Sa) + S R = D*(1 - Sa)/255 + S R = D*(1 - Sa)/65535 + S
func BlendSubtractColor ¶
BlendSubtractColor 减去模式 是将原始图像与混合图像相对应的像素提取出来并将它们相减。 C = Max(0,S-D)
func BlendSubtractRGBA ¶
func BlendSubtractRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendSubtractRGBA 减去模式 是将原始图像与混合图像相对应的像素提取出来并将它们相减。 C = Max(0,S-D)
func BlendVividLightColor ¶
BlendVividLightColor 亮光模式 根据绘图色通过增加或降低“对比度”,加深或减淡颜色。如果绘图色比50%的灰亮,图像通过降低对比度被照亮,如果绘图色比50%的灰暗,图像通过增加对比度变暗。 (D<=128): R = S - (255-S)*(255-2*D) / (2*D) (D>128): R = S + S*(2*D-255)/(2*(255-D))
(D<=32768): R = S - (65535-S)*(65535-2*D) / (2*D) (D>32768): R = S + S*(2*D-65535)/(2*(6553-D))
func BlendVividLightRGBA ¶
func BlendVividLightRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendVividLightRGBA 亮光模式 根据绘图色通过增加或降低“对比度”,加深或减淡颜色。如果绘图色比50%的灰亮,图像通过降低对比度被照亮,如果绘图色比50%的灰暗,图像通过增加对比度变暗。 (D<=128): R = S - (255-S)*(255-2*D) / (2*D) (D>128): R = S + S*(2*D-255)/(2*(255-D))
(D<=32768): R = S - (65535-S)*(65535-2*D) / (2*D) (D>32768): R = S + S*(2*D-65535)/(2*(6553-D))
func BlendXorColor ¶
BlendXorColor 异或模式 R = S*(1 - Da) + D*(1 - Sa) R = (S*(255 - Da) + D*(255 - Sa))/255 R = (S*(65535 - Da) + D*(65535 - Sa))/65535 Note that the Porter-Duff "XOR" mode is only titularly related to the classical bitmap XOR operation (which is unsupported by CoreGraphics)
func BlendXorRGBA ¶
func BlendXorRGBA(Sr, Sg, Sb, Sa uint32, Dr, Dg, Db, Da uint32, _ float64, destinationAlpha bool) (R, G, B, A uint32)
BlendXorRGBA 异或模式 R = S*(1 - Da) + D*(1 - Sa) R = (S*(255 - Da) + D*(255 - Sa))/255 R = (S*(65535 - Da) + D*(65535 - Sa))/65535 Note that the Porter-Duff "XOR" mode is only titularly related to the classical bitmap XOR operation (which is unsupported by CoreGraphics)
func RegisterBlendFunc ¶
func RegisterBlendFunc(blendMode BlendMode, funcBlendColor FuncBlendColor, funcBlendRGBA FuncBlendRGBA)
Types ¶
type BlendMode ¶
type BlendMode int
const ( // None 无 None BlendMode = iota // Normal 正常模式(已实现) Normal // NormalThreshold 阈值模式(已实现) NormalThreshold // Dissolve 溶解模式(已实现) Dissolve // Behind 背后模式(已实现) Behind // Clear 清除模式(已实现) Clear // Copy 覆盖模式(已实现) Copy // Darken 变暗模式(已实现) Darken // Multiply 正片叠底(已实现) Multiply // ColorBurn 颜色加深模式(已实现) ColorBurn // LinearBurn 线性加深模式(已实现) LinearBurn // DarkerColor 深色模式---------------------------------------- DarkerColor // Add 增加模式(已实现) Add // Lighten 变亮模式(已实现) Lighten // Screen 滤色模式(已实现) Screen // ColorDodge 颜色减淡模式(已实现) ColorDodge // LinearDodge 线性减淡模式(已实现) LinearDodge // LighterColor 浅色模式---------------------------------- LighterColor // Overlay 叠加模式(已实现) Overlay // SoftLight 柔光模式(已实现) SoftLight // HardLight 强光模式(已实现) HardLight // VividLight 亮光模式(已实现) VividLight // LinearLight 线性光模式(已实现) LinearLight // PinLight 点光模式(已实现) PinLight // HardMix 实色混合模式(已实现) HardMix // Difference 差值模式(已实现) Difference // Exclusion 排除模式(已实现) Exclusion // Subtract 减去模式(已实现) Subtract // Divide 划分模式(已实现) Divide // Hue 色相模式 Hue // Saturation 饱和度模式 Saturation // Color 颜色模式 Color // Luminosity 亮度模式 Luminosity // DestinationAtop (已实现) DestinationAtop // DestinationIn (已实现) DestinationIn // DestinationOut (已实现) DestinationOut // DestinationOver (已实现) DestinationOver // PlusDarker 高级深色(已实现) PlusDarker // PlusLighter 高级浅色(已实现) PlusLighter // SourceAtop (已实现) SourceAtop // SourceIn (已实现) SourceIn // SourceOut (已实现) SourceOut // SourceOver (已实现) SourceOver // Xor 异或模式(已实现) Xor )
func (BlendMode) BlendColor ¶
Source Files ¶
- add.go
- behind.go
- clear.go
- color.go
- color_burn.go
- color_dodge.go
- copy.go
- darken.go
- darker_color.go
- destination_atop.go
- destination_in.go
- destination_out.go
- destination_over.go
- difference.go
- dissolve.go
- divide.go
- exclusion.go
- hard_light.go
- hard_mix.go
- hue.go
- lighten.go
- lighter_color.go
- linear_burn.go
- linear_dodge.go
- linear_light.go
- luminosity.go
- mode.go
- multiply.go
- normal.go
- normal_threshold.go
- overlay.go
- pin_light.go
- plus_darker.go
- plus_lighter.go
- saturation.go
- screen.go
- soft_light.go
- source_atop.go
- source_in.go
- source_out.go
- source_over.go
- subtract.go
- vivid_light.go
- xor.go