GRASS GIS 8 Programmer's Manual 8.4.1(2025)-45ca3179ab
Loading...
Searching...
No Matches
pngdriver/write.c
Go to the documentation of this file.
1/*!
2 \file lib/pngdriver/write.c
3
4 \brief GRASS png display driver - write image (lower level functions)
5
6 (C) 2007-2014 by Glynn Clements and the GRASS Development Team
7
8 This program is free software under the GNU General Public License
9 (>=v2). Read the file COPYING that comes with GRASS for details.
10
11 \author Glynn Clements
12 */
13
14#include <stdio.h>
15#include <stdlib.h>
16#include <string.h>
17
18#include <grass/config.h>
19#include <grass/gis.h>
20#include "pngdriver.h"
21
22void write_image(void)
23{
24 char *p = png.file_name + strlen(png.file_name) - 4;
25
26 if (!png.modified)
27 return;
28
29 if (png.mapped)
30 return;
31
32 if (G_strcasecmp(p, ".ppm") == 0) {
33 write_ppm();
34 if (png.has_alpha)
35 write_pgm();
36 }
37 else if (G_strcasecmp(p, ".bmp") == 0)
38 write_bmp();
39#ifdef HAVE_PNG_H
40 else if (G_strcasecmp(p, ".png") == 0)
41 write_png();
42#endif
43 else
44 G_fatal_error("write_image: unknown file type: %s", p);
45
46 png.modified = 0;
47}
void G_fatal_error(const char *msg,...)
Print a fatal error message to stderr.
Definition gis/error.c:159
struct png_state png
void write_image(void)
GRASS png display driver - header file.
void write_pgm(void)
void write_ppm(void)
void write_bmp(void)
int G_strcasecmp(const char *x, const char *y)
String compare ignoring case (upper or lower)
Definition strings.c:47
void write_png(void)
Definition write_png.c:55