---
name: "pngdriver"
section: "1grass"
platform: "linux"
package: "grass-doc"
version: "8.4.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/pngdriver"
---

# pngdriver(1grass)

## PNG DISPLAY DRIVER

*PNG display driver* to create PNG, PPM, or BMP images.

## DESCRIPTION

The PNG driver generates PNG, PPM, or BMP images from GRASS display commands. Per default PNG files are written with this driver. This driver is used by default if *Cairo* *driver* is not available.

## USAGE

### Environment variables

The PNG driver can be enabled by setting **GRASS\_RENDER\_IMMEDIATE** variable, eg.\

```
export GRASS_RENDER_IMMEDIATE=png
```

Several environment variables affect the operation of the PNG driver:

- •

  **GRASS\_RENDER\_WIDTH=xxx**\
   the width of the image map (default is 640).

- •

  **GRASS\_RENDER\_HEIGHT=yyy**\
   the height of the image map (default is 480).

- •

  **GRASS\_RENDER\_BACKGROUNDCOLOR=RRGGBB**\
   specifies the background color to use in RGB notation (hex or R:G:B values). Named colors are also supported. Default is **FFFFFF** (white).

- •

  **GRASS\_RENDER\_TRANSPARENT=\[TRUE\|FALSE\]**\
   sets transparent background on (TRUE) or off (FALSE, default).

- •

  **GRASS\_RENDER\_TRUECOLOR=\[TRUE\|FALSE\]**\
   sets true-color support. Default is TRUE.

- •

  **GRASS\_RENDER\_FILE=filename**\
   the filename to put the resulting image in, default is `map.png`. If you set GRASS\_RENDER\_FILE to a filename which ends in ".ppm", a PPM file will be created (with alpha channel stored in a PGM image, if applicable). If you set GRASS\_RENDER\_FILE to a filename which ends in ".bmp", a 32-bpp BMP file will be created (these are not readable by some older viewers).

- •

  **GRASS\_RENDER\_FILE\_COMPRESSION=\[0\|1\|9\]**\
   compression level of PNG files (0 = none, 1 = fastest, 9 = best, default is 6)

- •

  **GRASS\_RENDER\_FILE\_READ**\
   if `TRUE`, the PNG driver will initialize the image from the contents of GRASS\_RENDER\_FILE.

- •

  **GRASS\_RENDER\_FILE\_MAPPED**\
   if `TRUE`, the PNG driver will map GRASS\_RENDER\_FILE as its framebuffer, rather than using memory. This only works with BMP files.

### Example

```
export GRASS_RENDER_IMMEDIATE=png
export GRASS_RENDER_TRUECOLOR=TRUE
g.region raster=elevation
d.rast elevation
d.vect roadsmajor color=red
```

This writes a file named `map.png` in your current directory.

## NOTES

The PNG driver uses the libpng (see the libpng home page) and zlib (see the zlib home page), all which needs to be installed for the PNG driver to work (it’s worth it).

The resolution of the output images is defined by current region extents. Use `g.region -p` to get the number of rows and cols and use the environment variables to set the image size. If you would like a larger image, multiply both rows and cols by the same whole number to preserve the aspect ratio.

Further PNG file processing (e.g. quantization to 1 bit for monochrome images) can be done with `pnmquant` of the netpbm tools.

## SEE ALSO

*Cairo driver,* *PS driver,* *HTML driver,* *variables*\
\
 *d.rast,* *d.vect,* *d.mon,* *d.erase,* *d.redraw*

## AUTHORS

Original version: Per Henrik Johansen \<*phj (at)* *norgit.no*\>\
 Rewritten by: Glynn Clements, 2003

## SOURCE CODE

Available at: PNG DISPLAY DRIVER source code (history)

Accessed: Monday Feb 24 17:49:40 2025

Main index \| Topics index \| Keywords index \| Graphical index \| Full index

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.1 Reference Manual
