I'm looking for a way to combine two images with standard image blending methods like Darken, Color Burn, Color Dodge, Soft Light. Is there a way to achieve these with ImageCompose or Overlay?


Use ImageApply with a list of images. You just need to get the formula right.

An example of "Screen" mode:

blend["Screen", u_, l_] := 1. - (1. - u)*(1. - l)
ImageBlend[mode_String, upper_Image, lower_Image] := 
 ImageApply[blend[mode, #1, #2] &, {upper, lower}]

An example to play with "Screen" mode:

lowerImg = ExampleData[{"TestImage", "Lena"}];
upperImg = 
   GaussianFilter[Image[RandomReal[1., ImageDimensions@lowerImg]], 

ImageBlend["Screen", lowerImg, upperImg]

lena blended with noise

  • $\begingroup$ Can you add color dodge? $\endgroup$ – M.R. Jan 8 at 15:42

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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