[GRASS-SVN] r49345 - grass/branches/releasebranch_6_4/raster/r.out.png

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Nov 24 04:13:29 EST 2011


Author: neteler
Date: 2011-11-24 01:13:28 -0800 (Thu, 24 Nov 2011)
New Revision: 49345

Modified:
   grass/branches/releasebranch_6_4/raster/r.out.png/r.out.png.c
Log:
glynn: Use functions rather than direct acess to the info struct (backport from trunk, r43927)

Modified: grass/branches/releasebranch_6_4/raster/r.out.png/r.out.png.c
===================================================================
--- grass/branches/releasebranch_6_4/raster/r.out.png/r.out.png.c	2011-11-24 08:08:33 UTC (rev 49344)
+++ grass/branches/releasebranch_6_4/raster/r.out.png/r.out.png.c	2011-11-24 09:13:28 UTC (rev 49345)
@@ -145,7 +145,7 @@
 
     /* see what can be done to convert'em -A.Sh.
      * gscale = G_define_flag ();
-     * gscale->key = 'G';
+     * gscale->key = 'g';
      * gscale->description = "Output greyscale instead of color";
      */
 
@@ -193,9 +193,9 @@
     /* ... if at all */
     ret = G_str_to_color(bgcolor->answer, &def_red, &def_grn, &def_blu);
     if (ret == 0)
-    	G_fatal_error(_("[%s]: No such color"), bgcolor->answer);
+	G_fatal_error(_("[%s]: No such color"), bgcolor->answer);
     else if (ret == 2) {  /* (ret==2) is "none" */
-    	if(!do_alpha)
+	if(!do_alpha)
 	    do_alpha = TRUE;
     }
 #else
@@ -228,9 +228,9 @@
 
     /* open png file for writing */
     if (do_stdout)
-    	fp = stdout;
+	fp = stdout;
     else if (NULL == (fp = fopen(outfile, "w")))
-    	G_fatal_error(_("Unable to open output file <%s>"), outfile);
+	G_fatal_error(_("Unable to open output file <%s>"), outfile);
 
 
     png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING,
@@ -261,10 +261,12 @@
     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)) {
 	png_set_filter(png_ptr, 0, filter);
@@ -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);
 



More information about the grass-commit mailing list