diff -Nur grass-6.4.1/raster/r.out.png/r.out.png.c grass-6.4.1-r.out.png/raster/r.out.png/r.out.png.c
--- grass-6.4.1/raster/r.out.png/r.out.png.c 2010-10-17 19:15:31.000000000 +0200
+++ grass-6.4.1-r.out.png/raster/r.out.png/r.out.png.c 2011-11-23 22:57:47.382158068 +0100
@@ -261,9 +261,11 @@
png_info_init(info_ptr);
#endif
png_init_io(png_ptr, fp);
- info_ptr->width = win.cols;
- info_ptr->height = win.rows;
- info_ptr->bit_depth = depth;
+
+ png_set_IHDR(png_ptr, info_ptr, win.cols, win.rows, depth,
+ do_alpha ? PNG_COLOR_TYPE_RGB_ALPHA : PNG_COLOR_TYPE_RGB,
+ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT,
+ PNG_FILTER_TYPE_DEFAULT);
/* explicit filter-type (or none) required */
if ((filter >= 0) && (filter <= 4)) {
@@ -272,7 +274,7 @@
png_set_compression_level(png_ptr, png_compr);
- if(do_alpha) {
+ if (do_alpha) {
png_color_16 background_color;
background_color.red = (png_uint_16)def_red;
background_color.green = (png_uint_16)def_grn;
@@ -302,11 +304,6 @@
/*if(!gscale->answer){ *//* 24BIT COLOR IMAGE */
if (TRUE) {
- if (do_alpha)
- info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA;
- else
- info_ptr->color_type = PNG_COLOR_TYPE_RGB;
-
/* write the png-info struct */
png_write_info(png_ptr, info_ptr);