[Qgis-user] How to control image exporter size (with QSize)

Andrea Giudiceandrea andreaerdna at libero.it
Sun Feb 25 12:59:37 PST 2024


> afernandez afernandez at odyhpc.com
> Sun Feb 25 07:48:51 PST 2024

> I'm using the image exporter to create PNG files. Everything looks good but 
> the files must have a resolution of 1,200 pixels in the horizontal 
> direction. 

> The created file has a resolution of 3507 by 2480 pixels (not sure where 
> these figures come from but QGIS seems to always use them).

Hi afernandez,
I guess your layout is an A4 page (H 29.7 cm * W 21 cm) and that the 
export resolution for the print layout is set to 300 dpi (the default 
value). This explains way the exported image has dimension of H 3507 px 
* W 2480 px and it's resolution is 300 dpi:
3507 px = 29.7 cm * 300 dpi * 1 in / 2.54 cm


> canvas_settings.dpi = 100
> The new file has a resolution of 1169x826 pixels

1169 px = 29.7 cm * 100 dpi * 1 in / 2.54 cm

You need to set the resolution to the value of 102.63 dpi in order to 
obtain the H dimension of 1200 pixels:
102.63 dpi = 1200 px * 2.54 cm / 29.7 cm / 1 in
So you will obtain an image of 1200 px * 848 px

> canvas_settings.imageSize = QSize(1200,750)
> it just seems to ignore QSize and reverts back to a 3507x2480 resolution. 

You need to respect the aspect ration of the layout page dimensions:
H / W layout = 29.7 cm / 21 cm = about 1.4143
W image = 1200 px / 1.4143 = 848 px

thus
canvas_settings.imageSize = QSize(1200, 848)

Best regards.

Andrea


More information about the QGIS-User mailing list