Say you want to display a feature specific image on each page of a QGIS Atlas.
In my example I have a layer with two features:
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "image_path": "/tmp/1.jpeg" }, "geometry": { "type": "Polygon", "coordinates": [[[9,53],[11,53],[11,54],[9,54],[9,53]]] } }, { "type": "Feature", "properties": { "image_path": "/tmp/2.jpeg" }, "geometry": { "type": "Polygon", "coordinates": [[[13,52],[14,52],[14,53],[13,53],[13,52]]] } } ] }
And I also have two JPEG images, named “1.jpeg” and “2.jpeg” are in my /tmp/ directory, just as the “image_path” attribute values suggest.
The goal is to have a map for each feature and its image displayed on the same page.
Create a new print layout, enable Atlas, add a map (controlled by Atlas, using the layer) and also an image.
For the “image source” enable the data-defined override and use attribute(@atlas_feature, 'image_path')
as expression.
That’s it, now QGIS will try to load the image referenced in the feature’s “image_path” value as source for the image on the Atlas page. Yay kittens!