Skip to content
  • Jehan's avatar
    app: improve line art bucket fill by filling unsignificant areas. · 72092fbd
    Jehan authored
    The line art imaginary segments/splines are not added when they create
    too small zones, unless when these are just too small ("unsignificant").
    Why the original algorithm keeps such micro-zones is because there may
    be such zones created when several splines or segments are leaving from
    a same key point (and we don't necessarily won't to forbid this). Also
    we had cases when using very spiky brushes (for the line art) would
    create many zones, and such micro-zones would appear just too often
    (whereas with very smooth lines, they are much rarer, if not totally
    absent most of the time).
    Also it is to be noted that the original paper would call these
    "unsignificant" indeed, but these are definitely significant for the
    artists. Therefore having to "fix" the filling afterwards (with a brush
    for instance) kind of defeat the whole purpose of this tool.
    
    I already had code which would special-case (fill) 1-pixel zones in the
    end, but bigger micro zones could appear (up to 4 pixels in the current
    code, but this could change). Also I don't want to use the "Remove
    Holes" (gimp:flood) operation as I want to make sure I remove only
    micro-holes created by the line art closure code (not micro-holes from
    original line arts in particular).
    
    This code takes care of this issue by filling the micro-holes with
    imaginary line art pixels, which may later be potentially bucket filled
    when water-filling the line art.
    72092fbd