[mapserver-users] differing image size with different mapserver versions

Richard Greenwood richard.greenwood at gmail.com
Sat May 15 10:07:56 PDT 2021


Even,

Thank you. I had ignored the difference in the interlacing of the two
images because I didn't think it would have affected the size.

The maprgbapng.c file no longer exists in MapServer 6.4 or 7.6. There is an
"if ( interlaced ..." code block in mapoutput.c that is the same in 6.4 and
7.6. I tried forcing it ON and rebuilding 7.6 but the output image still is
not interlaced. Maybe that code is just a left over. Or maybe AGG doesn't
support interlacing as https://www.mapserver.org/mapfile/outputformat.html
seems to suggest.

In any case, thanks again.
Rich



On Sat, May 15, 2021 at 9:59 AM Even Rouault <even.rouault at spatialys.com>
wrote:

> Richard,
>
> your 6.4 image is a interlaced PNG, whereas the 7.6 is a non-interlaced
> one.
>
> I see in the git history a relevant commit:
>
> $ git show 9984b39cc8f74d60eb240728df660a172a118aad
> commit 9984b39cc8f74d60eb240728df660a172a118aad
> Author: Thomas Bonfort <thomas.bonfort at gmail.com>
> <thomas.bonfort at gmail.com>
> Date:   Sun Oct 5 15:59:44 2008 +0000
>
>     rgba_png: don't interlace by default
>
>
>     git-svn-id: http://svn.osgeo.org/mapserver/trunk@7960
> 7532c77e-422f-0410-93f4-f0b67bdd69e2
>
> diff --git a/maprgbapng.c b/maprgbapng.c
> index 105d8d61..c3615edd 100644
> --- a/maprgbapng.c
> +++ b/maprgbapng.c
> @@ -357,10 +357,13 @@ int msSaveImageRGBAQuantized(gdImagePtr img, gdIOCtx
> *ctx, outputFormatObj *form
>      int bot_idx, top_idx;
>      int remap[256];
>      int reqcolors = atoi(msGetOutputFormatOption( format,
> "QUANTIZE_COLORS", "256"));
> +    const char *interlace;
>      ms_png_info info;
>      info.width = gdImageSX(img);
>      info.height = gdImageSY(img);
> -    if( strcasecmp("ON", msGetOutputFormatOption( format, "INTERLACE",
> "ON" )) == 0 )
> +    interlace = msGetOutputFormatOption( format, "INTERLACE", "OFF" );
> +    if( strcasecmp("ON", interlace) == 0 || strcasecmp("YES", interlace)
> == 0
> +            || strcasecmp("1", interlace) == 0)
>          info.interlaced=1;
>      else
>          info.interlaced=0;
>
> But this predates 6.4 release by several years, so this doesn't explain
> why you see a different behavior, unless something in 6.4 still turned on
> interlacing on in that configuration.
>
> From what I can see in the doc, the interlacing mode was removed in the
> 7.0 release when GD went off, so I don't think you can do much. I guess
> that could be re-added but would require some coding.
>
> Even
>
>
> Le 15/05/2021 à 17:43, Richard Greenwood a écrit :
>
> I get significantly different image sizes between MapServer 6.4 and 7.6
> with the same output format definition. I've tried many variations of the
> following.
>
> OUTPUTFORMAT
>   NAME "png-test"
>   DRIVER "AGG/PNG"  # GD driver is same (6.4 only)
>   MIMETYPE "image/png; mode=8bit"
>   IMAGEMODE PC256
>   FORMATOPTION "QUANTIZE_FORCE=on"
>   FORMATOPTION "QUANTIZE_COLORS=256"
>   EXTENSION "png"
>   # TRANSPARENT on or off makes little difference
> END
>
> MapServer 6.4 <https://greenwoodmap.com/mapserv64.png> is 90kB, MapServer
> 7.6 <https://greenwoodmap.com/mapserv76.png> is 320kB. Any suggestions as
> to how I can get my MapServer 7.6 image sizes down closer to what I'm
> getting in MapServer 6.4?
>
> Thanks,
> Rich
>
> --
> Richard W. Greenwood, PLS
> www.greenwoodmap.com
>
> _______________________________________________
> mapserver-users mailing listmapserver-users at lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/mapserver-users
>
> -- http://www.spatialys.com
> My software is free, but my time generally not.
>
>

-- 
Richard W. Greenwood, PLS
www.greenwoodmap.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20210515/7b6f1669/attachment.html>


More information about the mapserver-users mailing list