|
|
@ -190,7 +190,7 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders |
|
|
float alpha = dstW + srcW + blendW; |
|
|
float alpha = dstW + srcW + blendW; |
|
|
|
|
|
|
|
|
// calculate final color
|
|
|
// calculate final color
|
|
|
Vector4 color = dst * dstW + src * srcW + blend * blendW; |
|
|
Vector4 color = (dst * dstW) + (src * srcW) + (blend * blendW); |
|
|
|
|
|
|
|
|
// unpremultiply
|
|
|
// unpremultiply
|
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
@ -209,7 +209,7 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders |
|
|
float alpha = dstW + blendW; |
|
|
float alpha = dstW + blendW; |
|
|
|
|
|
|
|
|
// calculate final color
|
|
|
// calculate final color
|
|
|
Vector4 color = dst * dstW + blend * blendW; |
|
|
Vector4 color = (dst * dstW) + (blend * blendW); |
|
|
|
|
|
|
|
|
// unpremultiply
|
|
|
// unpremultiply
|
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
@ -238,8 +238,8 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders |
|
|
float srcW = 1 - dst.W; |
|
|
float srcW = 1 - dst.W; |
|
|
float dstW = 1 - src.W; |
|
|
float dstW = 1 - src.W; |
|
|
|
|
|
|
|
|
float alpha = src.W * srcW + dst.W * dstW; |
|
|
float alpha = (src.W * srcW) + (dst.W * dstW); |
|
|
Vector4 color = src.W * src * srcW + dst.W * dst * dstW; |
|
|
Vector4 color = (src.W * src * srcW) + (dst.W * dst * dstW); |
|
|
|
|
|
|
|
|
// unpremultiply
|
|
|
// unpremultiply
|
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
color /= MathF.Max(alpha, Constants.Epsilon); |
|
|
@ -255,9 +255,5 @@ namespace SixLabors.ImageSharp.PixelFormats.PixelBlenders |
|
|
|
|
|
|
|
|
#endregion
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |