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 355730 - Merge down layers non-destructively
Merge down layers non-destructively
Status: RESOLVED OBSOLETE
Product: GIMP
Classification: Other
Component: General
git master
Other All
: Normal enhancement
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2006-09-13 06:48 UTC by david gowers
Modified: 2018-05-24 11:55 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
'reset merge' plugin (2.38 KB, text/plain)
2006-09-13 06:50 UTC, david gowers
Details
revised plugin, adds 'Less merge' (4.32 KB, text/plain)
2006-09-13 08:36 UTC, david gowers
Details
'Apply Layer' (3.72 KB, text/plain)
2006-09-14 02:46 UTC, david gowers
Details

Description david gowers 2006-09-13 06:48:32 UTC
The existing 'merge down' operation destroys the original layer. In the cases where I'm incrementally applying paint or other effects using layers, this is awkward, as I have to continually recreate the layer, and parasites, positioning,.. are not preserved. For incremental application of any effect, non-destructive 'merge down' is much better.
The idea is to apply the merge down effect, keep the layer intact and clear the layer to a neutral color (Or empty, if it has an alpha channel). I call this 'Reset merge'. This makes it easy to, for instance, add shading levels one by one.
(pick a color, draw on the shade layer, reset merge, draw on the shade layer, reset merge, draw on the shade layer...)

In my observation, this operation is more commonly useful than Merge down.
A PyGimp plugin which implements this command is attached. I hope that it proves itself generally useful enough to be implemented in a more efficient way in Gimp itself. In any case, I'm offering it for inclusion in GIMP in plugin form.
I might also write a patch implementing it directly in GIMP.

This plugin also demonstrates how to use the lower-level 'gimpplugin' class, which is much faster than GimpFu for non-interactive plugins.
Comment 1 david gowers 2006-09-13 06:50:36 UTC
Created attachment 72674 [details]
'reset merge' plugin

There probably could be a better name than 'reset merge'.. maybe 'apply layer paint'?
Comment 2 Sven Neumann 2006-09-13 07:08:20 UTC
I doubt that this is generally useful and I am afraid that the menu is already too cluttered for adding another Merge variant.

Keeping parasites on the Merge layer is probably even wrong because likely these parasites describe properties of the layer such as text or vectors which would not be existant after a "Reset Merge".

So basically I don't see the point. Doing a Merge Down followed by the creation of a new layer achieves the same effect and it's just one more action.
Comment 3 david gowers 2006-09-13 08:33:19 UTC
I agree vectors and text data should be discarded; I can special-case the removal of those. I want plugin configuring data, anchor points, etc.. to be kept. I think that that is correct behaviour.

I also agree that the Layer menu is slightly crowded. There are no 'other' variants of "Merge down" there in a default install as you imply, though. Unless you're counting 'Anchor layer' as one.

The absolutely key things to preserve are: size, layer mode, positioning, opacity.
Layer mode because for incremental application, modes like 'multiply' are much more useful than 'normal' mode.

I can write a plugin that just preserves those things. Otherwise, your method would require the user to:
0. Merge old layer down
1. Create a new layer (setting the size and fill manually)
2. Set layer mode
3. Set layer opacity
4. Set layer position
5. Possibly: remove alpha channel, pick a neutral color for the layer mode and fill the layer with it . Depending on whether that layer mode is more usable with or without transparency.

For each time a 'reset' was desired.
The one-step operation 'Reset merge' is not at all comparable to what you suggest.

Revised plugin implementing 'Less merge' (Layers->Less merge) is attached.
Does not preserve layer masks, which I think it should, but otherwise sound.
Does not preserve parasites, as you wanted.
Comment 4 david gowers 2006-09-13 08:36:02 UTC
Created attachment 72683 [details]
revised plugin, adds 'Less merge'

"Less merge" is also an arbitrary name, given because it preserves less than "Reset merge"

Please use it before commenting on its usability.
Comment 5 Sven Neumann 2006-09-13 09:02:38 UTC
You can achieve the same thing with Merge Down followed by Duplicate and Clear.
Comment 6 david gowers 2006-09-13 09:58:24 UTC
.... Perhaps I should have said 'please think about the truth of your comment before you make it'.
You cannot preserve mode, position, opacity, or whether it has an alpha channel or not through the method you just described. Nor layer size, unless it matches the underlying layer size.

Using your latest method, the following would be needed to *actually* reset the paint application layer:


1. Merge Down 
2. Duplicate
3. Clear
4. Scale/resize layer (maybe)
5. Reposition layer (maybe)
6. Set layer mode
7. Set opacity.

What is difficult about accepting that it is not comparable workflow/usability-wise?

	
Comment 7 Sven Neumann 2006-09-13 13:38:25 UTC
Duplicate preserves all layer attributes. I only got the order wrong. Duplicate first, then Merge Down, then Clear.

Seriously, I don't think that your workflow is representative so there is no point in arguing between me and you. You are not an average user and I am not a user at all. All I can say is that I have never come across this request in all the years that I am listening to users. This makes me think that it's not something that's important enough to be added.

The fact that you can't even come up with a reasonable menu label for this shows that the proposed concept doesn't really fit into a common workflow.
Comment 8 david gowers 2006-09-13 15:05:41 UTC
I've actually done what you say in your correction.. it is somewhat usable.. at least, more than the other scenarios. It is not good for any serious use, still -- too cumbersome.

I can come up with a label (I only thought up and implemented this plugin today.). I would call it 'Apply layer'.. in the manner of 'apply paint'.. Since that is the main value of it, as a way to temporarily postpone the application of paint so the application can be cleaner (and so that the application need not be in one stroke, in the case of lowered opacity or non-Normal layer modes). In that view, normal layers behaviour is perfect except for their disappearance when merging down.

I also think that this behaviour will become more useful if vector layers end up being included in GIMP, unless GIMP gets a bezier/polygon-drawing tool.

Definitely I am not a normal user, and my workflow is not typical. I was comparing with the kind of workflow needed to create something like 
http://artscene.textfiles.com/mirrors/GRAPE-DEMO-ARCHIVE/graphism/cd/das/das-bakpic1.png
or
http://artscene.textfiles.com/mirrors/GRAPE-DEMO-ARCHIVE/graphism/cd/color/color-unknown.png
efficiently. I also think that the importance of things tend to not be known until you have experience with them (in this case, incremental paint application).

Anyway, I hope to get someone else's input before closing this bug.
Comment 9 weskaggs 2006-09-13 23:54:33 UTC
I see the value, but I agree with Sven that there isn't enough obvious demand to justify making the menus bigger.  This seems like exactly the sort of thing that would belong in a resource repository, if we had a viable one.  In any case, I don't see why the bug report needs to be closed, instead of staying open as an enhancement request.
Comment 10 david gowers 2006-09-14 02:46:34 UTC
Created attachment 72749 [details]
'Apply Layer'

Okay, attaching the latest version then, which could be considered final
though I'm working on extending it to support custom pre/combine/post-processing, which is probably less generally useful.

* Just the one 'Apply layer' function (Layers->Apply).
  IMNHO applying paint without preserving parasites as in 'Less merge' is not very useful; I only didn't mark attachment #72683 [details] as obsolete because Sven seemed to think it a desirable behaviour.

* Neatened the help and improved parameter descriptions.
* Better comments.
* i18n
* Accessible also via the Layers dialog.
Comment 11 GNOME Infrastructure Team 2018-05-24 11:55:37 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gimp/issues/208.