https://bugs.kde.org/show_bug.cgi?id=356462

Dmitry Kazakov <dimul...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dimul...@gmail.com

--- Comment #5 from Dmitry Kazakov <dimul...@gmail.com> ---
Short: 
The solution for the original problem: "just use 51% opacity to avoid rounding,
or use another composite op"

Long:

The formula for Normal alpha blending looks like that:

newColor = dstColor + alpha * (srcColor - dstColor)

In our case:
dstColor = 1
srcColor = 0
alpha = 0.5

We do all the calculations in a floating point numbers, so we get:

newColor = 1.0 + 0.5 * (0.0 - 0.5) = 0.5

Then, we convert the floating-point number back to integers using rounding:

newColorInt = round(0.5) = 1

We cannot skip rounding, because if we do the effects will be drastic. The
image pixels will flip to different sides in a random way, creating artifacts
on the merged image.


So, speaking truly, I don't know if we can (or should) fix this bug. How do the
other applications work with this case?

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to