I have the original image (left image below) and have received the processed version (center image below) of that image. I don't know which processing steps have been applied on the original image to get the edited version. However, I know that all editing steps, e.g. change of saturation, have always been applied on the image as a whole. No cutting, copying within the image or modification of a part of the image have been performed. Now, in Gimp, the same resulting effect should be applied on other images. The processing steps actually do not need to be reconstructed. However, I don't know how to use the difference (right image below, calculated with blending modes) in order to derive the necessary processing from it.

How do I have to read, in Gimp, the difference between two images to derive from it the necessary processing procedures to go from the original to the edited version?

Original image (left), processed copy (center) and difference between them (right)

  • Hi. Welcome to GDSE. Looks like a simple curves adjustment to me. The highlights have been brightened a touch. This is just a guess though. Try it yourself.
    – Billy Kerr
    Commented May 2, 2021 at 22:58
  • Sorry, frame challenge coming up;) Do you have to copy it exactly? It's actually not very good. The mid-highlights are over-pushed, losing detail in the near tree trunks & flattening the sky, also losing rather than gaining detail in the shadows-blacks. Compare to i.sstatic.net/J1PeS.jpg for a different approach.
    – Tetsujin
    Commented May 3, 2021 at 7:05
  • @Tetsujin: Thank you for quality suggestions. However, let's look at it from simply technical point of view. I'd like to understand how to derive a processing procedure from the fact of existing differences. Quality can get adjusted belatedly.
    – stonebe
    Commented May 3, 2021 at 10:40
  • I would plot the pixels in a graph like in this post
    – joojaa
    Commented May 4, 2021 at 11:11

1 Answer 1


If the only thing that happened is a global color manipulation (Brightness/Contrast, Levels, or Curves) then you could create a map of (R,G,B) triplets to other (R,G,B) triplets. If you are extremely lucky(*) you could even find three independent simple maps for each R, G, & B channels (256 values to another set of values, usually a bit smaller(**)). This in theory lets you re-apply the same transform on other images (which doesn't mean that this transform is adequate for these other images), and Gimp would only be able to do the simple & lucky version.

However, if you use the ColorCube analysis (Color ➤ Info ➤ Colorcube analysis) , your image went from 76K different colors to 111K. Which means that pixels that were initially the same color are now of different colors. So such a map doesn't exist. It also means that something else happened in a position-dependent way, such as sharpening, and this is somewhat harder to reverse-engineer if you don't know what technique was used (and this would assume that this same technique is available in Gimp).

So, all in all, what you want to do is not doable in practice with Gimp(***).

(*) Which means that the unknown processing would have only worked on each color channel separately, and didn't use, for instance, a general Brightness-Contrast.

(**) If you don't accept solarization-like effects, you are mathematically reducing the number of output values...

(***) AI-based systems, after an extensive training, perhaps

  • Well if it has 2 masked areas youd just get 2 response curves for each color. IN practice this is a hard problem depending on the case. You could retrieve sharpening if you do a similar corresponding pixel to data point analysis on the fourier or laplace domain instead of RGB, similar things can be done on laplace planes on HSL channels etc. Anyway it also depends on how the images were saved in most cases retriving something like this saving images as jpeg becomes etra extra hard.
    – joojaa
    Commented May 4, 2021 at 13:36
  • Thank you for the explanation. I finally verified that there is no biunique relationship between an RGB-value in the old image and the RGB-value resulting for the same pixel in the new image and vice versa. This means that there is no specific translation for one specific RGB-value to reproduce the new image.
    – stonebe
    Commented May 13, 2021 at 23:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.