GNOME Bugzilla – Bug 123399
Tree-Based Image Editing
Last modified: 2004-12-22 21:47:04 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.
Should this report be marked as a duplicate of bug #86337 ?
Yes. i shall do that now. *** This bug has been marked as a duplicate of 86337 ***