7

Version 3.8.3. QGIS' layer blending is a spectacular feature that I use often. For example, when displaying a polygon layer over a satellite image background I'll set the polygon layer blend mode = "multiply".

However, this blending also affects the polygon boundary. I'd like the boundary to remain un-blended (i.e. blending mode = "normal"). Is there a way to do this without displaying a second, hollow copy of the polygon layer on top with its blending set to "normal"?

In summary, how do I simultaneously set polygon fill = blend multiply, with polygon stroke = blend normal?

  • Is there a particular reason you don't work with colour transparency? This way you could see the background through the body, but have the outline solid. – Erik Nov 28 '19 at 7:23
  • @Erik Yes, I could adjust transparency, but that also "fades" the polygon outline. But more importantly, layer blending generates a far superior result than transparency, particularly with a satellite imagery basemap. Transparency leaves a hazy, washed-out appearance, while blending generates a very professional look. – Stu Smith Nov 28 '19 at 15:21
  • You can adjust colour transparency independently from the layer transparency. As to the rest - that's a matter of opinion, I think. Still, you could duplicate the layer, and blend one layer as the filling, while the other layer displays only the outline without blending? – Erik Nov 28 '19 at 15:41
  • Yes, as I mentioned in the OP, I've been duplicating layers, which works. However, I was hoping to find a way to achieve the result within one layer. – Stu Smith Nov 28 '19 at 21:06
0
+50

As the rendering mode applies to the whole layer, there is no direct way to do what you ask.

For future reference, however, one can use a quick workaround, which entails the use of a duplicate layer:

1. Blending the areas

in the original layer:

  1. Apply a color to the area
  2. Define Stroke style as no pen
  3. Apply the blending to the original layer

2. Normal outline

Now duplicate the original layer:

enter image description here

  1. Rename it to avoid confusion
  2. Apply no color to the area Fill style -> No brush
  3. Define Stroke style as Solid line
  4. Remove the blending of layer, i.e. Blending Mode->Normal
  5. (optional) Move the outline layer to the top

Result

enter image description here

| improve this answer | |
  • 2
    The main question is "Is there a way to do this without displaying a second, hollow copy of the polygon layer?" – Kadir Şahbaz Mar 3 at 10:12
  • Thanks: I edited the answer so to make clear there is no direct way to accomplish what the OP asks. At the same time, I left the workaround as a possible guide for anyone who happens to have a similar question/need in the future. – RafDouglas Mar 3 at 10:23
0

I know you said you like the looks of the blending mode more than the transparency. But if you play around with the opacity values, I'm sure you can recreate the desired output. For example you can set the opacity value of your filling independent of your stroke. Simple Fill -> Fill color --> opacity value (while the layer and the stroke color is not transparent).

| improve this answer | |
  • The question is "How"? – Kübra Mar 9 at 9:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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