Bug: Selection edges do not impede flood fill. #823

Closed
oceanhahn opened this Issue Oct 6, 2015 · 4 comments

Comments

Projects
None yet
2 participants

I seem to remember old versions, as recently as 1.1, treating selection edges as barriers to flood filling, but this no longer seems to be so. Did this change intentionally in 1.1.0.1? It's a bit of a hassle to have to either outline the entire selection up to internal blockages (that is, a pattern of pixels that 'dams the flood')...

I've tried a number of things in an attempt to find the source of the problem (if indeed it is one)-- playing with 'contiguous' and 'stop at grid' -- nothing seems to solve it. Was this a deliberate change? If not, something's broken.

Thanks!

Owner

dacap commented Oct 6, 2015

Hi @oceanhahn! Flood fill should work as previous Aseprite versions by default (with Contiguous option checked). Are you working with one layer or multiple layers? The edge detection works only for the current layer (detecting edges in the current layer). If you are working with one layer, it's probable that you've found a bug.

Oh, I found what's happening.
The flood fill tool seems to be filling all of the valid pixels it can see from the unselected layer, then only filling the pixels within the selection. When the flood fill tool determines which pixels to change, it looks at everything it can "see" not including the selection boundaries.
This is different from what I would expect (and it may just be me), which is that it would evaluate only the 'flood-able' pixels within the selection-- that is, the edges of a selected area, as well as any pixels within it, act as barriers to flood-fill.

Attached are two screencaptures of flood-fill in action: the lefthand one shows a flood within a selection within a closed shape (behaving as expected): the fill only floods the interior space of the closed shape. The righthand figure shows a flood within a selection, within an open shape. When the flood evaluates which pixels to fill, it looks at the whole image and not just the pixels in the marquee. When it actually fills pixels, though, it only changes the ones in the selection. I would have expected it to stop flooding at the edge of the selection, rather than to compute every pixel and only alter the selected ones. 😗

Anyway, I don't know how hard that would be to fix, or if that's even what's going on. I hope this helps! :D
(For reference, I have multiple layers, but the fill and enclosure are both on the same one.)

(continues below image...)
11012

The outcome I want is for fill to flood the middle section of the figure, as on the left, even if the whole figure is open beyond the selection area. (Of course, if there is a gap inside the selected area, flood-fill ought to still flood through it, filling all "visible" pixels -inside- the selection!)

In short, it looks like it's flooding the unselected image, then applying just the selected portion to the view.
I would have expected it to flood the selection only, ignoring all pixels beyond the selected space, in this operation.

It also looks like an old issue, since my legacy install of 0.9.5 does exactly the same thing! :0
I've revised the issue title to reflect this.

oceanhahn changed the title from Bug?: Selection edges no longer halt flood fill. to Bug: Selection edges do not impede flood fill. Oct 6, 2015

dacap added the bug label Oct 6, 2015

dacap added this to the v1.1 milestone Oct 6, 2015

Owner

dacap commented Oct 6, 2015

Thanks for the great explanation! The selection should act like another edge for the flood fill. (I've checked Photoshop just out of curiosity and it works correctly 😄 )

oceanhahn referenced this issue Nov 3, 2015

Closed

Tasks for release v1.1.1 #845

15 of 15 tasks complete

dacap self-assigned this Nov 4, 2015

dacap closed this in 4a67a96 Nov 4, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment