mirror of
https://gitlab.gnome.org/GNOME/gimp.git
synced 2025-07-03 17:33:25 +00:00
Bug 767345: Color Erase Blend Mode Do not working in Paint tools correctly (exception Bucket fill Tool)
This commit is contained in:
parent
8631dda659
commit
f7569cad82
1 changed files with 9 additions and 6 deletions
|
@ -112,27 +112,30 @@ gimp_operation_color_erase_mode_process_pixels (gfloat *in,
|
||||||
|
|
||||||
if (bgcolor.r < 0.0001)
|
if (bgcolor.r < 0.0001)
|
||||||
alpha.r = color.r;
|
alpha.r = color.r;
|
||||||
|
else if (GEGL_FLOAT_EQUAL (color.r, bgcolor.r))
|
||||||
|
alpha.r = 0.0;
|
||||||
else if ( color.r > bgcolor.r )
|
else if ( color.r > bgcolor.r )
|
||||||
alpha.r = (color.r - bgcolor.r) / (1.0 - bgcolor.r);
|
alpha.r = (color.r - bgcolor.r) / (1.0 - bgcolor.r);
|
||||||
else if (color.r < bgcolor.r)
|
else
|
||||||
alpha.r = (bgcolor.r - color.r) / bgcolor.r;
|
alpha.r = (bgcolor.r - color.r) / bgcolor.r;
|
||||||
else alpha.r = 0.0;
|
|
||||||
|
|
||||||
if (bgcolor.g < 0.0001)
|
if (bgcolor.g < 0.0001)
|
||||||
alpha.g = color.g;
|
alpha.g = color.g;
|
||||||
|
else if (GEGL_FLOAT_EQUAL (color.g, bgcolor.g))
|
||||||
|
alpha.g = 0.0;
|
||||||
else if ( color.g > bgcolor.g )
|
else if ( color.g > bgcolor.g )
|
||||||
alpha.g = (color.g - bgcolor.g) / (1.0 - bgcolor.g);
|
alpha.g = (color.g - bgcolor.g) / (1.0 - bgcolor.g);
|
||||||
else if ( color.g < bgcolor.g )
|
else
|
||||||
alpha.g = (bgcolor.g - color.g) / (bgcolor.g);
|
alpha.g = (bgcolor.g - color.g) / (bgcolor.g);
|
||||||
else alpha.g = 0.0;
|
|
||||||
|
|
||||||
if (bgcolor.b < 0.0001)
|
if (bgcolor.b < 0.0001)
|
||||||
alpha.b = color.b;
|
alpha.b = color.b;
|
||||||
|
else if (GEGL_FLOAT_EQUAL (color.b, bgcolor.b))
|
||||||
|
alpha.b = 0.0;
|
||||||
else if ( color.b > bgcolor.b )
|
else if ( color.b > bgcolor.b )
|
||||||
alpha.b = (color.b - bgcolor.b) / (1.0 - bgcolor.b);
|
alpha.b = (color.b - bgcolor.b) / (1.0 - bgcolor.b);
|
||||||
else if ( color.b < bgcolor.b )
|
else
|
||||||
alpha.b = (bgcolor.b - color.b) / (bgcolor.b);
|
alpha.b = (bgcolor.b - color.b) / (bgcolor.b);
|
||||||
else alpha.b = 0.0;
|
|
||||||
|
|
||||||
if ( alpha.r > alpha.g )
|
if ( alpha.r > alpha.g )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue