Bug 344806

Summary: Inverting the selection changes the selection shape (8 bit/int)
Product: [Applications] krita Reporter: kalia24
Component: ToolsAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: griffinvalley, sven.langkamp
Priority: NOR    
Version First Reported In: 2.9   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description kalia24 2015-03-03 22:15:00 UTC
Looks like same issue as here: https://bugs.kde.org/show_bug.cgi?id=343285
And here: https://bugs.kde.org/show_bug.cgi?id=343365
Though for a 8 bit/int picture this time.

Basic selection (done with Select opaque command): http://i57.tinypic.com/6q9lxe.jpg
Inverted selection: http://i59.tinypic.com/7asl.jpg

I know there may be some not-perfectly-opaque parts there, but definitely not THAT many...

Reproducible: Always

Steps to Reproduce:
1. Create partially transparent 8 bit/int picture.
2. Select the opaque part with Select opaque command under R-click menu on the layer list.
3. Invert the selection (Ctrl+Shift+I).

Actual Results:  
Selection changes shape. A lot.

Expected Results:  
Selection gets simply inverted.

A file I was working with when met the issue: https://www.dropbox.com/s/hq2dq5m4u5rd0lx/couronne.kra?dl=0
Comment 1 kalia24 2015-03-04 12:05:28 UTC
To make things less clear - after several repeats of the above now* it works correctly...
(*now = after several saves and loads + a lot of changes in the image)
Comment 2 Sven Langkamp 2015-03-04 17:57:44 UTC
Just the displayed outline changes a lot, the selection itself is inverted correctly.

The difference is just the way in which Krita defines the outline. Krita allows to have various degrees of selectedness. If a pixel is selected it will be inside of the outline no matter if it's 1% or 100% selected.

If a pixel is 99% selected it will be inside the selection, after inverting it's 1% selected and still in the selection. Only inverting a 100% selected pixel will result in a totally unselected pixel. That exactly what happens in the image above.
Comment 3 kalia24 2015-03-04 18:12:05 UTC
So in a word there's no way to get inverted selection only inverted "selectedness"?
Quite sad, since it makes a lot of things impossible to achieve...
Guess I'll have to add it to wishlist then.
Comment 4 wolthera 2016-02-06 17:18:47 UTC
We implemented an anti-alias checkbox so this can be worked around(so you can get sharper selections)