[Qgis-user] Composer Atlas: How get rid of the big red cross when there is no image?

Bernd Vogelgesang bernd.vogelgesang at gmx.de
Wed Oct 26 15:28:07 PDT 2016


Am 27.10.2016, 00:12 Uhr, schrieb Nyall Dawson <nyall.dawson at gmail.com>:

>
> On 27 Oct 2016 7:18 AM, "Bernd Vogelgesang" <bernd.vogelgesang at gmx.de>  
> wrote:
>>
>> Am 26.10.2016, 22:57 Uhr, schrieb Nyall Dawson <nyall.dawson at gmail.com>:
>>
>>> On 27 Oct 2016 6:51 AM, "Bernd Vogelgesang" <bernd.vogelgesang at gmx.de>  
>>> wrote:
>>> >
>>> > Arghh, sorry for the noise!
>>> >
>>> > When hovering over the data-driven input button not so hectically, I  
>>> discovered the explanation that it expects a 0 or 1.
>>> > So
>>> > case when> 'mypath'|| @atlas_pagename ||'_1.jpeg' IS NULL
>>> > THEN
>>> > 0
>>> > END
>>> >
>>> > did the trick!
>>>
>>> This is odd... A null picture expression should be rendered empty, not  
>>> as the red cross. The red cross is intended only as an >obnoxious,  
>>> obvious indicator that a picture path was set but couldn't be found.
>>>
>>> The expression above would only result in 0 if @atlas_pagename is null.
>>>
>>> Nyall
>>
>>
>> Well, yeah, I was too early to announce the solution. In fact this did  
>> not render the missing image, but also not the one which is >there :(
>>
>> case when 
>> '/media/Daten/IVL_Projekte/2016024_Feldhamster_NEA/2_EINGANG_MA/Bernd/QGIS/Fotos/'||  
>> @atlas_pagename ||'_1.jpeg' IS NULL
>> THEN
>> 1
>> ELSE
>> 0
>> END
>>
>> This should do it. But now I am again where is started: When the image  
>> is there, it is rendered, when not, the red cross is >exported as well.
>
> That's because that expression is just testing whether the concatenated  
> string itself is null, not whether the corresponding file >actually  
> exists.
>
> My advice: make a small python custom function 'file_exists' which  
> checks for the existence of a file. Then change your picture path  
> >expression to something like:
>
> Case when file_exists( 'media/' ... Etc) then  'media/' ... Else null end
>
> That should get you the result you are after.
>
> Nyall

Hi Nyall,

unfortunately, I have still no clue of python.
I now added blank images for the missing ones :(

I think I will at least file a bug report for the red cross not being  
rendered.

Thanx for your attention
Bernd
>
>>
>> :(
>>
>> Bernd
>>
>>> >
>>> > Just amazing!!!>
>>> > Thanx
>>> > Bernd
>>> >
>>> > Am 26.10.2016, 22:19 Uhr, schrieb DelazJ <delazj at gmail.com>:
>>> >
>>> >> Hi,
>>> >> what about using the data-defined option near the "Exclude items  
>>> from export" in the items properties --> Rendering (with a >case when  
>>> expression)?
>>> >>  
>>> http://docs.qgis.org/2.14/en/docs/user_manual/print_composer/composer_items/composer_items_options.html#rendering-mode
>>> >>
>>> >> HTH,
>>> >> Harrissou
>>> >>
>>> >> 2016-10-26 22:10 GMT+02:00 Bernd Vogelgesang  
>>> <bernd.vogelgesang at gmx.de>:
>>> >>>
>>> >>> Hi,
>>> >>> I set up a neat atlas for displaying a row of 50 sample plots. On  
>>> a second page, I want to show 2 pictures taken of these >plots  
>>> automatically with an expression including the path ||  
>>> @atlas_pagenumber || '_1.jpeg' or '_2.jpeg' to display up to two  
>>> photos >named e.g. 1_1.jpeg, 1_2.jpeg.
>>> >>>
>>> >>> This works really great! The problem is, that for some plots, we  
>>> do not and have any picture or only one. In composer, these >missing  
>>> images are marked with a big red cross.
>>> >>> Unfortunately, these red crosses are also exported, which looks  
>>> quite shitty.
>>> >>>
>>> >>> Is there any clever way of forcing QGIS not to export these place  
>>> holders but just not to print anything at this place?
>>> >>>
>>> >>> The only (boring) idea I came up with till now, was to create  
>>> empty white images and name them accordingly to avoid the red >crosses.
>>> >>>
>>> >>> Thanx
>>> >>> Bernd
>>> >>>
>>> >>> -->>> Bernd Vogelgesang
>>> >>> Siedlerstraße 2
>>> >>> 91083 Baiersdorf/Igelsdorf
>>> >>> Tel: 09133-825374
>>> >>> _______________________________________________
>>> >>> Qgis-user mailing list
>>> >>> Qgis-user at lists.osgeo.org
>>> >>> List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> >>> Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> >>
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Bernd Vogelgesang
>>> > Siedlerstraße 2
>>> > 91083 Baiersdorf/Igelsdorf
>>> > Tel: 09133-825374
>>> >
>>> > _______________________________________________
>>> > Qgis-user mailing list
>>> > Qgis-user at lists.osgeo.org
>>> > List info: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>> > Unsubscribe: http://lists.osgeo.org/mailman/listinfo/qgis-user
>>
>>
>>
>>
>> --
>> Bernd Vogelgesang
>> Siedlerstraße 2
>> 91083 Baiersdorf/Igelsdorf
>> Tel: 09133-825374



-- 
Bernd Vogelgesang
Siedlerstraße 2
91083 Baiersdorf/Igelsdorf
Tel: 09133-825374
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20161027/26622133/attachment.html>


More information about the Qgis-user mailing list