I've a photo in Inkscape which is not contrast-optimized. I want to make whites to be pure whites and blacks to be pure blacks. Nevertheless I don't want the full photo to be contrast-optimized, only an arbitrary zone of it.

First idea: classic duplication + correction + transparency:

  1. Duplicate the photo object
  2. Set both copies pixel-perfectly aligned one on top of the other.
  3. In the above one, modify the contrast as desired.
  4. Set a mask on the top-photo (with the contrast corrected) to allow only those desired zones to be shown and where I don't want correction, set it transparent so the original photo is seen.

Nevertheless, I wonder:

I can see "blend modes" so I may correct hue, saturation, etc. using top layer's data as the parameter to modify the bottom layer...

But I can't see how to make a "non-destructive contrast-correction layer" so I don't have to duplicate the photo and change the contrast destructively in the copy.

Whole point of that: if I want to change the contrast amount 3 hours after editing many other things, I want to just change the parameters of the correction instead of re-rendering another corrected photo, detaching the mask from one and re-attaching the mask to the new one.

Is there any kind of "non-destructive dynamic contrast correction" in Inkscape?


2 Answers 2


It is possible, but Inkscape's raster capabilities are fairly limited in comparison to an actual raster image editor. So it's going to be a bit painful to be honest.

Here's an example using Filters > Colours > Brilliance.

What I did here was to make a duplicate of the image, applied a radial gradient to a circle (white inside, black outside), then applied it as a mask to the image to make a kind of vignette effect.

Here I'm adjusting the filter to make a brighter high contrast patch in the middle.

enter image description here

To undo this/adjust it, just go into Filters > Remove Filters. Then you can apply it again. You can also go into the filter editor and make adjustments to the matrix, but this is a pain and not really user friendly. Just deleting the filter and redoing it is probably the best option.

  • Hummm... notice I'm new to inkscape, right? huh... And if I have multiple objects, will it remove the filters of "all the document" or only of the selected object? And if I have "multiple filters" to the same object will it remove "all the filters" or may I pick what filter to remove? Commented Apr 4 at 19:32
  • @XaviMontero it will remove the filters from selected objects. If you have more than one filter applied to an object, you can also delete specific filters from selected objects in the Filter Editor panel.
    – Billy Kerr
    Commented Apr 4 at 20:19

Partial workarounds:

Import the photo as linked. Then you can mask, scale, rotate and group it in Inkscape. And the same for all Inkscape's filters which accept a photo. The original photo is not affected. Make the changes to the photo in GIMP or another photo editing program and save without changing the filename nor storage path. The photo is updated in Inkscape as soon as you have opened the Inkscape work file which contains the linked photo. It happens immediately if you happen to have the Inkscape work open when the photo is edited.

Remember: Current Inkscape version has some really useful filters for photos. One of them is Filter > Color > Lightness and contrast. It can be removed in any time and it works also if the photo is already masked in Inkscape. Unfortunately changing the filtering settings is tricky, so remove and add again with new adjustments.

You can have 2 differently masked and filtered copies of the same inserted photo at the same time.

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.