Color shifts using QUANTIZE_COLORS=256

Bart van den Eijnden (OSGIS) bartvde at XS4ALL.NL
Wed Aug 9 14:14:18 EDT 2006


Hi Steve,

there is some info by Frank in the following bug report (assuming it is 
not outdated):

http://mapserver.gis.umn.edu/bugs/show_bug.cgi?id=684

Are you able to preprocess your tiles to 8-bit using a script that GDAL 
provides?

My experience with PNG24 is that they become huge (aerial photos of 
about 500 by 500 pixels approach 1 Mb) and that ofcourse IE 6 (and 
lower) has problems with alpha transparency.

Best regards,
Bart

Stephen Woodbridge wrote:

> Hi all,
>
> Sorry for the cross-post, but this seems valid for both groups.
>
> I have mapserver configured to work with ka-map and things are working
> fine except we have noticed color shifts in tiles. We are using:
>
>   OUTPUTFORMAT
>     NAME PNG8
>     DRIVER "GD/PNG"
>     EXTENSION "png"
>     MIMETYPE "image/png"
>     IMAGEMODE RGBA
>     TRANSPARENT OFF
>     FORMATOPTION "QUANTIZE_FORCE=ON"
>     FORMATOPTION "QUANTIZE_DITHER=OFF"
>     FORMATOPTION "QUANTIZE_COLORS=256"
>   END
>
> in our mapfile and my hypotheses is that the GD QUANTIZE process is
> selecting different colors based on the colors available in the various
> meta-tiles. The mapserver source code calls the following function for 
> this process and from the GD manual:
>
>> void gdImageTrueColorToPalette(gdImagePtr im, int ditherFlag, int
>> colorsWanted) gdImagePtr gdImageCreatePaletteFromTrueColor(gdImagePtr
>> im, int ditherFlag, int colorsWanted) (FUNCTION)
>>
>> gdImageCreatePaletteFromTrueColor returns a new image.
>> gdImageTrueColorToPalette permanently converts the existing image.
>> The two functions are otherwise identical.
>>
>> The function converts a truecolor image to a palette-based image,
>> using a high-quality two-pass quantization routine. If ditherFlag is
>> set, the image will be dithered to approximate colors better, at the
>> expense of some obvious "speckling." colorsWanted can be anything up
>> to 256. If the original source image includes photographic
>> information or anything that came out of a JPEG, 256 is strongly
>> recommended. 100% transparency of a single transparent color in the
>> original truecolor image will be preserved. There is no other support
>> for preservation of alpha channel or transparency in the destination
>> image.
>>
>> For best results, don't use this function -- write real truecolor
>> PNGs and JPEGs. The disk space gain of conversion to palette is not
>> great (for small images it can be negative) and the quality loss is
>> ugly. However, the version of this function included in version
>> 2.0.12 and later does do a better job than the version included prior
>> to 2.0.12.
>
>
> So, a few questions:
>
> 1) Has anyone looked into the impact of using PNG24 images on
>   a) image sizes
>   b) ka-map tile-cache sizing
>   c) compatibility with browsers
>   d) impact on browser memory usage or performance
> 2) I thought Paul Spencer said to use DITHERED=OFF, is this correct
> 3) Has anyone looked at the GD routine? Would it be possible to add a 
> palette of say 32 colors that would be "sticky" and priority over 
> other colors?
>
> -SteveW
>
>


-- 
Bart van den Eijnden
OSGIS, Open Source GIS
http://www.osgis.nl



More information about the mapserver-users mailing list