Done using GIMP 2.10.20 on Kubuntu Linux 18.04 LTS
As we saw in the previous tutorial, I have prepared two images that I will use for examples:
For the sake of consistency in the explanations, I will always make Toy image the bottom layer, and Dog image the top layer. This means that I will be making my Layer mode choice with the Dog image selected.
Here we see the layers open in GIMP in the order I specified. And note that the Mode selected is Normal. This means that the Top layer will entirely cover the Bottom layer in the resulting image because there is no transparency in the Top layer. So the result is a nice picture of a dog. If the Top layer was smaller than the Bottom layer, the areas not covered by the Top layer would show through. And if we reduced the opacity of the Top layer or added some areas of transparency, then of course some of the Bottom layer would show through, but none if it comes through solely because of the Layer mode.
This mode dissolves the Top layer into the Bottom layer by means of partial transparency. It is worth noting that this mode, like many of the Layer modes, can also be applied to Brushes which allows you to use it just in certain areas, but first let’s discuss doing it as a Layer mode.
I selected my top layer, the Dog photo, and left it in Normal mode. I then reduced the opacity of this top layer to 75%, and got an image with the bottom showing up through the top.
In this mode, reducing the opacity of the top layer results in an image where every single pixel of the final image is a combination of the pixels in each layer.
Now, what happens when we change the mode to Dissolve, but keep the top layer opacity at 75%?
In this case, we get a a kind of speckled pattern in which each pixel of the final image is either the corresponding pixel from the top image or from the bottom image, but not combination at all. The layer chosen for each pixel is random.
Now, doing this as a Layer mode means you are doing it to the entire image. What about only doing it to part of the image? The key is to apply transparency selectively. Select Dissolve mode for the Top layer as before, but leave the Opacity of this layer at 100%. Then use the Erase tool. I did this setting the opacity of the Eraser tool to 50%, and drew a streak across the dog. That gave me a dissolve effect only where I drew with the Erase tool.
Now you can get an interesting effect if you set the opacity of the Erase tool to 100%, set the Top Layer Opacity to 100%, and set the Top Layer to Dissolve mode. Then Erase on the Top layer and you can create an area where only the bottom image is showing, but around the edges you will get a Dissolve effect because the Erase tool “feathers” the edges.
Finally, just a mention since we are on Dissolve, that you can get a related dissolve effect from the paintbrush tool. But instead of the bottom layer showing up, it would be your Foreground color that shows up. Select the Paintbrush tool, choose your foreground color, and then select Dissolve as the mode for the Paintbrush. This is in the Paintbrush properties which normally shows up in the lower left as with all of the Tool properties. I did this with Red as my Foreground color and got this image:
Color Erase works by taking the colors from the top layer and removing them from the bottom layer. So when you choose Color Erase as your layer mode for the Top layer, GIMP will immediately show the Bottom layer with this erasure in place. I did this with the Dog photo as Top layer, and got this result:
Now the problem I have with this mode is that the GIMP team has not gotten around to documenting it, so I was not (at first) certain exactly how this color erase really works. I don’t think it is as simple as just looking for a color match between the two images. I think there is something going on involving the numbers here. Recall that digital images are defined by numbers that express the Red, Green, Blue, and Alpha, and each number is composed of two hexadecimal digits. 16 x 16 = 256, and we know that it is handled in binary mathematics by one 8-bit byte. 4 channels at 8 bits each gives you 32 bits, so we call these 32-bit color. A precise color match would, at the very least, mean the 6 hexadecimal digits for the RGB match precisely, otherwise nothing is erased.
Then I had the idea that using one image to erase colors on the other one was making it too complicated for seeing what is going on. So instead so using the Dog image as the top layer, I created a layer with pure red, ff0000. Using that as the top layer, I got this:
Now it is clearer. The image before had red in the buckle on the wizard’s hat, and in the color of the wizard’s staff. Now everything in the photo is in shades of Blue, Green, and a washed-out Yellow. Normally, a pure yellow is a combination of Red and Green (ffff00), but with the Red removed and some Blue in there, it gets washed out. Next I tried doing it with a pure Green Top layer, and got this:
This makes sense because Red plus Blue makes Purple, so with all of the Green erased you should wind up with a Purple-tinged image. Finally, I tried it with a Blue Top layer:
Again, this all makes sense since was we saw above Red plus Green makes Yellow in this RGB display space.
So after experimenting, my guess is that the algorithm involves taking the pixel colors from the Top image, subtracting them from the Bottom layer, but only as far as Zero since you can’t go into negative numbers. Still, I’d like to see it documented at some time.
But this raises the question of where I would use this, and right now I don’t have a use case in mind. Still, there probably is a use for it if they put it in GIMP.
Now, as before with the Dissolve mode, there is a way to use Color Erase with other tools, like Paintbrush. Select your Paintbrush tool, and in the Properties area you will see Mode at the top. Set this to Color Erase, and draw with the paintbrush. I did this with my Foreground color set to pure Green (00ff00), and drew on my image. I got a purple streak where I drew, but only where I drew:
This might be more useful than doing it in Layer Mode, but in any case you have a few options here.