After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 123399 - Tree-Based Image Editing
Tree-Based Image Editing
Status: RESOLVED DUPLICATE of bug 86337
Product: GIMP
Classification: Other
Component: General
git master
Other All
: Normal enhancement
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2003-09-28 00:16 UTC by Bluefox
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Bluefox 2003-09-28 00:16:17 UTC
This bug fits under both General and UI, but since it will cause UI
modifications that can be used without using XCF, I've placed it under UI.

Currently, Gimp uses a bunch of cheap hacks to handle animation, many of
which I dislike.  These hacks involve handling the animation based on the
names of the layers.  I believe that it is time that Layer-Based Image
Editing is left behind in favor of a new design, one which will be more
suited to animation but will also provide strength in many different areas.

The design I am thinking of is Tree-Based Image Editing.  It is very akin
to Layer-Based Image Editing, just more complex.  The advantage is that one
could work on layers as combinations of layers, allowing more complex tasks
to be performed.

A good example here of an advantage of TBIE is layer masks.  It is not
unusual with LBIE to edit two or more layers, merge, and then apply a layer
mask.  However, when the layers are merged, you can no longer unmerge them.
 Once you save and quit, you can not go back.  The alternative is to keep 2
datafiles, OR to keep the layers duplicated and invisible.

With TBIE, one would simply create a layer as a left-to-right merge of
several sublayers, then apply the mask to that layer.  Those layers could
in turn be LTR merges of several sublayers each, and so on.  Thus, no need
to make a final comittment to how a layer will work is ever encountered.

LBIE looks like this:

FINAL IMAGE:  Vertical Merge
A
B
C
D
E

You view LBIE by looking down through the top layer to the bottom.  Each
layer merges down, showing what is below it through its transparent segments.

In comparison, TBIE looks like this (must be fixed width font):

FINAL IMAGE:  Horizontal merge
A___
|...|
B...C
|_  |___
| | | | |
D E F G H
 _______|
| | | |
I J K L

To get the final image, you merge H by merging horizontally I, J, K, and L.
 In essence, H can be represented as an isolated LBIE block:

FINAL IMAGE:  Merge down to produce H
I
J
K
L

To produce C, merge F, G, and H horizontally left to right in the same way:

FINAL IMAGE:  Merge down to produce C
F
G
H

To produce B, merge D and E horizontally.  Then finally, merge B and C
horizontally to produce A.  This gives the final image.

The XCF format and the GIMP UI would have to be extended beyond this in
order to remove the animation hacks.  At the second level, an animation
would have the frames PLAY left to right instead of MERGE left to right. 
On top of this, for animations, Gimp would need special Combine/Replace and
Delay flags for these layers, which would now be frames.  In the above
example, B and C would be frames of an animation, and A would be the
animation itself.

All in all, I believe a TBIE design would enhance the experience and power
of The GIMP.



On a side note, to do a UI for TBIE, just make the following behavioral
changes to the Layers dialog:
1) selecting a layer with sublayers causes the First Degree sublayers to be
displayed, but none are selected.
2) Add functions to create sublayers of a layer, making the original layer
the Left Hand Side layer if it does not already have sublayers.
3) Display the far left layer in the tree as the top layer, and the far
right as the Bottom layer, when viewing a set of sublayers.  This mimics
the current UI.
4) Add functions to merge a layer's components together; to delete a layer
and all its sublayers; and to move a layer and all of its sublayers up or
down in the tree.
5) The top layer is implicit.  It is simply the final image.
Comment 1 Sven Neumann 2003-09-28 12:51:52 UTC
Should this report be marked as a duplicate of bug #86337 ?
Comment 2 Bluefox 2003-09-28 13:26:02 UTC
Yes.  i shall do that now.  

*** This bug has been marked as a duplicate of 86337 ***