Improve paint bucket algorithm quality

Registered by Felipe "Juca" Sanches on 2008-07-16

I dont like the white borders that are left when one fill a vector curve. I mean... the spacing between the filled curve and the filling curve created by the paint bucket tool.
In this blueprint I propose the implementation of a vector version of the algorithm that would avoid the roundings that we currently have on the process of reasterization and later revectorization of curves.

Blueprint information

Not started
Felipe "Juca" Sanches
Needs approval
Series goal:
Milestone target:

Related branches



17-JULY-2008 Pablo "Pajarico" Trabajos: I read the pasted IRC conversation and I agree that rasterization and revectorization gives some headaches but on the other side, how would you create a form when you're clicking with the bucket over a gradient filled object? or a group of objects with similar color? My concern is that doing a selection based on the color you click and the tolerance is rather easy on a raster but I don't have a single clue how that could be achieved for a group of vectors.

16-APRIL-2009 Inkscape user: I agree with blueprint submitter. There must be an alternative way to create new objects as a "section" of existing objects using vector graphics information instead of raster. Answering to Pablo, 1) alternative paint bucket can use only outlines not fills of objects, so it is no matter if object is gradient-filled or not; 2) what a purpose of using paint bucket on a group of objects with similar color? Seems that we need to create a new object that covers the area of those objects. We can use "weld" operation to do it in vector way, so we don't need to use paint bucket for this.

This can be a solution for the blueprint:
1) determine which paths form a "new path";
2) create "duplicates" of them;
3) create "object" with size of a bit greater than "new path" should be;
4) place "object" in back of "duplicates" in an appropriate position;
5) use "divide" (Ctrl+/) operation on "object" using "duplicates", one by one;
6) select necessary parts (result of division) which form "new path" and weld (Ctrl++) them;
7) delete unnecessary parts;
8) fill "new path" with chosen color.


Work Items

This blueprint contains Public information 
Everyone can see this information.