diff options
author | Timothy Slater <tslater2006@gmail.com> | 2022-08-27 07:50:37 -0500 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-08-31 16:26:09 +0200 |
commit | 0506f4eef89c3679698ed11f8d4af4b9a3a36ba9 (patch) | |
tree | 1b61b5db685efe366796c2f7e048e7b9bf7a6575 | |
parent | 21ae882cfd9a6fb1a95c092916bea346445ea4aa (diff) | |
download | serenity-0506f4eef89c3679698ed11f8d4af4b9a3a36ba9.zip |
PixelPaint: Account for alpha in color distance calculation
This fixes an issue where BucketTool would consider "black"
and "transparent" the same color.
-rw-r--r-- | Userland/Applications/PixelPaint/Tools/BucketTool.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Userland/Applications/PixelPaint/Tools/BucketTool.cpp b/Userland/Applications/PixelPaint/Tools/BucketTool.cpp index 58255f3f5d..9c04c972e9 100644 --- a/Userland/Applications/PixelPaint/Tools/BucketTool.cpp +++ b/Userland/Applications/PixelPaint/Tools/BucketTool.cpp @@ -2,6 +2,7 @@ * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> * Copyright (c) 2022, Aaron Yoder <aaronjyoder@gmail.com> * Copyright (c) 2022, the SerenityOS developers. + * Copyright (c) 2022, Timothy Slater <tslater2006@gmail.com>. * * SPDX-License-Identifier: BSD-2-Clause */ @@ -30,7 +31,8 @@ static float color_distance_squared(Gfx::Color const& lhs, Gfx::Color const& rhs int a = rhs.red() - lhs.red(); int b = rhs.green() - lhs.green(); int c = rhs.blue() - lhs.blue(); - return (a * a + b * b + c * c) / (3.0f * 255.0f * 255.0f); + int d = rhs.alpha() - lhs.alpha(); + return (a * a + b * b + c * c + d * d) / (4.0f * 255.0f * 255.0f); } static bool can_paint(int x, int y, Gfx::Bitmap& bitmap, Gfx::Color const& target_color, float threshold_normalized_squared) |