From: <ai...@us...> - 2008-12-19 18:09:29
|
Revision: 9207 http://plplot.svn.sourceforge.net/plplot/?rev=9207&view=rev Author: airwin Date: 2008-12-19 18:09:25 +0000 (Fri, 19 Dec 2008) Log Message: ----------- Do not change pls->dev_compression value for -dev png. Instead, interpretation of the value is done the same as before, but locally. Improve documentation of that interpretation. Modified Paths: -------------- trunk/drivers/gd.c Modified: trunk/drivers/gd.c =================================================================== --- trunk/drivers/gd.c 2008-12-19 17:50:25 UTC (rev 9206) +++ trunk/drivers/gd.c 2008-12-19 18:09:25 UTC (rev 9207) @@ -402,15 +402,6 @@ dev->colour=1; /* Set a fall back pen colour in case user doesn't */ -/* - * Set the compression/quality level for PNG files - * The higher the value, the bigger/better the image is - * Values of 0-9 translate to the zlib compression values 0-9 - * Values 10 <= compression <= 99 are divided by 10 to get the zlib - * compresison value. Values greater than 99 are set to 90. - */ - if ( (pls->dev_compression<=0)||(pls->dev_compression>99) ) - pls->dev_compression=90; /* Check for and set up driver options */ @@ -1312,6 +1303,7 @@ { png_Dev *dev=(png_Dev *)pls->dev; int im_size=0; + int png_compression; void *im_ptr=NULL; if (pls->family || pls->page == 1) { @@ -1338,7 +1330,20 @@ lib a crash occurs - this fix works also in Linux */ /* gdImagePng(dev->im_out, pls->OutFile); */ #if GD2_VERS >= 2 - im_ptr = gdImagePngPtrEx (dev->im_out, &im_size, pls->dev_compression >9 ? (pls->dev_compression/10) : pls->dev_compression); + + /*Set the compression/quality level for PNG files. + pls->dev_compression values of 1-9 translate to the zlib compression values 1-9 + pls->dev_compression values 10 <= compression <= 99 are divided by 10 to get the zlib + compression value. Values <=0 or greater than 99 are set to 90 which + translates to a zlib compression value of 9, the highest quality + of compression or smallest file size or largest computer time required + to achieve the compression. Smaller zlib compression values correspond + to lower qualities of compression (larger file size), but lower + computer times as well. */ + + png_compression = ((pls->dev_compression<=0)||(pls->dev_compression>99)) ? 90 : pls->dev_compression; + png_compression = (png_compression > 9) ? (png_compression/10) : png_compression; + im_ptr = gdImagePngPtrEx (dev->im_out, &im_size, png_compression); #else im_ptr = gdImagePngPtr(dev->im_out, &im_size); #endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |