Go to file
Jehan b00037b850 app: improve end point detection for smart colorization.
Previous algorithm was relying on strokes of small radius to detect
points of interest. In order to work with various sizes of strokes, we
were computing an approximate median stroke thickness, then using this
median value to erode the binary line art.

Unfortunately this was not working that well for very fat strokes, and
also it was potentially opening holes in the line art. These holes were
usually filled back later during the spline and segment creations. Yet
it could not be totally assured, and we had some experience where color
filling would leak out of line art zones without any holes from the
start (which is the opposite of where this new feature is supposed to
go)!

This updated code computes instead some radius estimate for every border
point of strokes, and the detection of end points uses this information
of local thickness. Using local approximation is obviously much more
accurate than a single thickness approximation for the whole drawing,
while not making the processing slower (in particular since we got rid
of the quite expensive erosion step).
This fixes the aforementionned issues (i.e. work better with fat strokes
and do not create invisible holes in closed lines), and also is not
subject to the problem of mistakenly increasing median radius when you
color fill in sample merge mode (i.e. using also the color data in the
input)!
Also it is algorithmically less intensive, which is obviously very good.

This new version of the algorithm is a reimplementation in GIMP of new
code by Sébastien Fourey and David Tschumperlé, as a result of our many
discussions and tests with the previous algorithm.

Note that we had various tests, experiments and propositions to try and
improve these issues. Skeletonization was evoked, but would have been
most likely much slower. Simpler erosion based solely on local radius
was also a possibility but it may have created too much noise (skeleton
barbs), with high curvature, hence may have created too many new
artificial endpoints.
This new version also creates more endpoints though (and does not seem
to lose any previously detected endpoints), which may be a bit annoying
yet acceptable with the new bucket fill stroking interaction. In any
case, on simple examples, it seems to do the job quite well.
2018-11-16 20:39:04 +01:00
.gitlab .gitlab: add "performance" issue template 2018-11-08 03:46:44 -05:00
app app: improve end point detection for smart colorization. 2018-11-16 20:39:04 +01:00
app-tools Change the license URL from http://www.gnu.org/licenses/ to https:// 2018-07-11 23:29:46 +02:00
build build: sync the nightly flatpak manifest with the stable one. 2018-11-01 22:22:33 +01:00
cursors cursors: oops, I optimized generation of resource files away 2018-05-28 20:09:09 +02:00
data Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
desktop desktop: update release date. 2018-11-07 17:01:40 +01:00
devel-docs devel-docs: small update for GEGL buffer leak debugging. 2018-11-14 13:37:42 +01:00
docs docs, etc: regenerate system gimprc and its manpage 2018-10-20 11:34:15 +02:00
etc docs, etc: regenerate system gimprc and its manpage 2018-10-20 11:34:15 +02:00
icons icons: fix icons! 2018-09-17 19:17:32 +02:00
libgimp Fix plugin focus issues on osx 2018-10-18 14:07:03 +02:00
libgimpbase app, libgimpbase: add GIMP_SELECT_CRITERION_LINE_ART selection type. 2018-11-14 13:37:42 +01:00
libgimpcolor libgimpcolor: remove deprecated integer RGB <-> HSL conversion functions 2018-10-22 13:29:11 +02:00
libgimpconfig app, libgimp*, modules: don't use g_type_class_add_private() ... 2018-09-18 14:39:56 -04:00
libgimpmath libgimpmath: fix typo in various places: s/orthognal/orthogonal/. 2018-09-20 18:10:45 +02:00
libgimpmodule app, libgimp*, modules: don't use g_type_class_add_private() ... 2018-09-18 14:39:56 -04:00
libgimpthumb libgimpthumb: another missing link to libgimpbase. 2018-08-12 22:46:44 +02:00
libgimpwidgets app, libgimpbase: add GIMP_SELECT_CRITERION_LINE_ART selection type. 2018-11-14 13:37:42 +01:00
m4macros m4macros, plug-ins: run more accurately the "python2" interpreter. 2018-06-16 02:07:02 +02:00
menus app: Add option in the windows menu to hide the image tab bar. 2018-10-23 11:52:07 +02:00
modules app, libgimp*, modules: don't use g_type_class_add_private() ... 2018-09-18 14:39:56 -04:00
pdb app: edit the bucket fill tool options with new line art options. 2018-11-14 13:37:42 +01:00
plug-ins Issue #2501: Confusing wording in "Export Image as PDF" dialog. 2018-11-14 13:37:42 +01:00
po Update Czech translation 2018-11-13 01:24:39 +03:00
po-libgimp Update Swedish translation 2018-10-25 19:24:03 +00:00
po-plug-ins plug-ins: make curve-bend build again, and undeprecate it a bit 2018-10-22 15:04:07 +02:00
po-python po-python: skip copied Python files from POTFILES. 2018-08-18 12:51:59 +02:00
po-script-fu Update Spanish translation 2018-11-16 11:57:32 +00:00
po-tags po*: change Report-Msgid-Bugs-To URL to gitlab.gnome.org 2018-07-11 21:56:14 +02:00
po-tips Update Romanian translation 2018-10-08 16:16:22 +00:00
po-windows-installer Some small fixes in Italian installer translation 2018-10-25 11:14:56 +02:00
themes themes: draw a wider border around GimpFgBgColor's active color 2018-10-25 12:02:41 +02:00
tools tools: in performance-log-viewer.py, fix "function()" predicate ... 2018-11-10 02:52:32 -05:00
.dir-locals.el .dir-locals.el: configure emacs to show trailing whitespace 2016-08-24 17:46:57 +02:00
.gitignore Switch to version 2.99/3.0 in a lot of places and depend on GTK+ 3.22 2018-05-20 21:06:26 +02:00
.kateconfig Add .kateconfig with modelines for Kate 2016-08-23 14:53:38 +02:00
AUTHORS authors: adding Simon Müller who did some nice patches on the Win32... 2018-05-30 12:11:40 +02:00
COPYING Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
ChangeLog.pre-1-0 changelog split up 1998-06-07 13:54:00 +00:00
ChangeLog.pre-1-2 converted to utf-8 2004-05-10 17:45:17 +00:00
ChangeLog.pre-2-0 vte sucks 2004-05-20 02:36:11 +00:00
ChangeLog.pre-2-2 Copied current ChangeLog away and truncated it. 2004-12-19 02:55:34 +00:00
ChangeLog.pre-2-4 renamed the pre-2.4 ChangeLog 2007-10-23 23:36:17 +00:00
ChangeLog.pre-2-6 Applied changes based on official version of TinyScheme (CVS commit dated 2009-08-04 14:23:55 -04:00
ChangeLog.pre-git Applied changes based on official version of TinyScheme (CVS commit dated 2009-08-04 14:23:55 -04:00
HACKING Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
INSTALL.in INSTALL: update mypaint-brushes repository (finally upstream!). 2018-09-30 21:05:59 +02:00
LICENSE Source and trivial typos 2018-05-12 23:44:47 +02:00
MAINTAINERS Update GIMP project meta information. 2014-08-07 21:30:35 +02:00
Makefile.am configure.ac, Makefile.am: skip po-python/ 2018-05-31 00:29:36 -04:00
NEWS NEWS: mention enum docs in libgimpbase 2018-05-20 16:42:12 +02:00
NEWS.pre-2-0 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-2 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-4 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-6 Misc. typos 2018-10-19 15:30:27 +00:00
NEWS.pre-2-8 NEWS.pre-2-8: new file preserving the history that lead to 2.8 2015-11-22 17:30:15 +01:00
NEWS.pre-2-10 Misc. typos 2018-10-19 15:30:27 +00:00
README Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
README.i18n Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
acinclude.m4 configure.ac: require a C++11 compiler 2018-04-04 17:49:46 -04:00
authors.dtd authors.dtd: Update 2011-01-28 07:55:55 +01:00
authors.xml authors: adding Simon Müller who did some nice patches on the Win32... 2018-05-30 12:11:40 +02:00
authors.xsl Also put maintainers separately in AUTHORS 2011-01-27 22:04:05 +01:00
authors4gimp-web.xsl Bug 734981 - Update maintainers and authors. 2017-10-23 23:55:22 +02:00
autogen.sh Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
config.h.win32 updated msvc build add ENABLE_TOOLBOX_MENU, it should only vanish on Mac 2007-10-27 12:41:43 +00:00
configure.ac configure.ac: require babl >= 0.1.60 2018-11-15 12:55:46 -05:00
gimp-zip.in Drop the timestamp from the zip file names. Add the .pc files to the 2007-11-13 09:54:59 +00:00
gimp.doap Change a bazillion URLs to https:// 2018-07-14 14:19:27 +02:00
gimp.pc.in configure, gimp.pc: do no hardcode the major.minor version of GEGL. 2018-04-28 01:30:19 +02:00
gimpthumb.pc.in use GCheckSum instead of the MD5 routine from libgimpmath. 2008-03-28 16:47:38 +00:00
gimpui.pc.in Require gtk+-3.0 in gimpui-3.0.pc 2018-05-25 21:55:45 +02:00

README

                   ------------------------------
                   GNU Image Manipulation Program
                      2.99 Development Branch
                   ------------------------------

This is an unstable development release, an intermediate state on the
way to the next stable release: GIMP 3. GIMP 2.99 may or may not do what
you expect. Save your work early and often. If you want a stable
version, please use GIMP 2.10 instead.

If you think you found a bug in this version, please make sure that it
hasn't been reported earlier and that it is not just new stuff that is
still being worked on and obviously not quite finished yet.

If you want to hack on GIMP, please read the file HACKING. For
detailed installation instructions, see the file INSTALL.


1. Web Resources
================

GIMP's home page is at:

	https://www.gimp.org/

Please be sure to visit this site for information, documentation,
tutorials, news, etc.  All things GIMP-ish are available from there.

The automated plug-in registry is located at:

	https://registry.gimp.org/

There you can get the latest versions of plug-ins, using a convenient
forms-based interface.

The latest version of GIMP can be found at:

	https://www.gimp.org/downloads/


2. Mailing Lists
================

We have several mailing lists dedicated to GIMP user and development
discussion.  There is more info at

	https://www.gimp.org/mail_lists.html

Links to several archives of the mailing lists are included in that page.

Gimp-user-list is a mailing list dedicated to user problems, hints and
tips, discussion of cool effects, etc.  Gimp-developer-list is oriented
to GIMP core and plug-in developers.  Gimp-gui-list is for discussing
about GIMP interface to improve user experience. Most people will only
want to be subscribed to gimp-user-list. If you want to help develop
GIMP, the gimp-developer mailing list is a good starting point; if you
want to help with GUI design, the gimp-gui list is where you want to
subscribe.


3. IRC
======

And finally, for the real junkies, there is an IRC channel devoted to
GIMP. On GIMPNet (a private free software oriented network) there is
#gimp.  Many of the developers hang out there.  Some of the GIMPNet
servers are:

	irc.gimp.org:6667
	irc.us.gimp.org:6667
	irc.eu.gimp.org:6667


4. Customizing
==============

The look of GIMP's interface can be customized like any other GTK+ app
by editing files in `${XDG_CONFIG_HOME}/gtk-3.0/` (settings.ini and
gtk.css in particular) or by using "themes" (ready-made customizations).
Additionally, GIMP reads `${XDG_CONFIG_HOME}/GIMP/2.99/gimp.css` so you
can have settings that only apply to GIMP.

Included is a set of keybindings similar to those in Adobe Photoshop.
You can find them in the ps-menurc file.  To use them, copy this file
to `${XDG_CONFIG_HOME}/GIMP/2.99/menurc`. You can also manually change
the keybindings to any of your choice by editing:
`${XDG_CONFIG_HOME}/GIMP/2.99/menurc`.


Have fun,

  Spencer Kimball
  Peter Mattis
  Federico Mena
  Manish Singh
  Sven Neumann
  Michael Natterer
  Dave Neary
  Martin Nordholts