[mapserver-users] MapServer and 24bit Images

Brent Fraser bfraser at geoanalytic.com
Wed Dec 5 07:03:30 PST 2012


Jukka,

   Strange.  When I reviewed the source code it looked like Mapserver 
would refused to classify any 24/32 bit image; I must have missed 
something.   So I tried your mapfile with shp2img v6.0.0 on a 24bit 
image and it worked!  Then I added

         PROCESSING "BANDS=1,2,3"

and it *crashed*.  Turning on debugging showed:

msLoadMap(): 0.000s
msDrawMap(): rendering using outputformat named png24 (AGG/PNG).
msDrawMap(): WMS/WFS set-up and query, 0.000s
msDrawRasterLayerLow(classified): entering.
msDrawRasterLayerGDAL(): Entering transform.
msDrawRasterLayerGDAL(): src=0,0,5300,5430, dst=107,0,585,599
msDrawRasterLayerGDAL(): source raster PL (-6.077,-4.533) for dst PL 
(107,0).
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,2,3,0*
drawGDAL(): Unable to access file. Attempt to classify 24bit image, this 
is unsupported.
msDrawMap(): Image handling error. Failed to draw layer named 'classified'.
<*crash*>

Without the PROCESSING directive, I get:

msLoadMap(): 0.000s
msDrawMap(): rendering using outputformat named png24 (AGG/PNG).
msDrawMap(): WMS/WFS set-up and query, 0.000s
msDrawRasterLayerLow(classified): entering.
msDrawRasterLayerGDAL(): Entering transform.
msDrawRasterLayerGDAL(): src=0,0,5300,5430, dst=107,0,585,599
msDrawRasterLayerGDAL(): source raster PL (-6.077,-4.533) for dst PL 
(107,0).
msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,0,0,0*
msDrawMap(): Layer 0 (classified), 0.187s
msDrawMap(): Drawing Label Cache, 0.000s
msDrawMap() total time: 0.187s
msSaveImage(test.png) total time: 0.125s
msFreeMap(): freeing map at 00BBC4A8.
freeLayer(): freeing layer at 00BBF9B0.
shp2img total time: 0.312s

The line
     msDrawRasterLayerGDAL(): red,green,blue,alpha bands = *1,0,0,0*
implies that GDAL may be using only band one to do the classification, 
but maybe not (more testing required?).

Removing the EXPRESSION object shows
     msDrawRasterLayerGDAL(): red,green,blue,alpha bands = 1,2,3,0
And I do get a 24 bit image for output (as expected).



FYI, here's my mapfile:

MAP
     NAME 'classified'
     STATUS ON
     EXTENT -5009377.086 10752549.183 392.653 15885200.067
     SIZE 800 600

     IMAGETYPE "png24"
     OUTPUTFORMAT # Parameter Output
         NAME png24
         DRIVER "AGG/PNG"
         MIMETYPE "image/png"
         EXTENSION PNG
         IMAGEMODE RGBA
         TRANSPARENT ON
     END # end of parameter Output

     LAYER NAME "classified"

       DATA "Arctic_terra.250m.tif"
       DEBUG 5
       TYPE raster
       STATUS default
#        PROCESSING "NODATA=0"
#        PROCESSING "SCALE=AUTO"
#        PROCESSING "BANDS=1,2,3"
#        PROCESSING "DITHER=YES"
       CLASS NAME "test"
#        EXPRESSION ([pixel] > 100 AND [pixel] < 250)
         EXPRESSION ([red] > 100 AND [green] > 100 AND [blue] > 100)
         STYLE
           COLOR 0 255 0
         END #Style
       END # Class
     END # Layer

END # Map


Best Regards,
Brent Fraser

On 12/5/2012 2:27 AM, Rahkonen Jukka wrote:
> Hi,
>
> You should try to give more exact description about your problem. By reading several mails which you have sent to MS4W list I believe that you are still talking about the same images. That is 3-band,  8 bits per band images stored into database as PostGIS raster and which you have tried to classify into classes with something like this
>
> CLASS # beginning of the class parameter
>   NAME "Very Low"
>   EXPRESSION ([pixel] > 0 AND [pixel] < 47)
>   STYLE
>    COLOR 243 231 172
> END # end style for class
> END # end class for class very Low
>
> I had a try with some png file I found from my machine by using this in the mapfile
>
> LAYER
>    NAME "classified"
>    DATA "C:\ms4w\apps\data\8000000.png"
>    debug 10
>    TYPE RASTER
>    STATUS ON
>     PROJECTION
>              "init=epsg:3067"
>     END
>   CLASS
>      NAME "test"
>     EXPRESSION ([pixel] > 100 AND [pixel] < 250)
>     # EXPRESSION ([red] > 100 AND [green] > 100 AND [blue] > 100)
>      STYLE
>        COLOR 0 255 0
>      END
>    END
> END
>
> Both expressions work so Mapserver does support classification of 3-band, 8 bits per band png images.
> Try you to convert your raster from the database into image file and repeat your test. It if works from a file but not from PostGIS raster then you know that the issue is somewhere in PostGIS raster handling.
>
> -Jukka Rahkonen-
>
>
>
>> -----Alkuperäinen viesti-----
>> Lähettäjä: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-
>> users-bounces at lists.osgeo.org] Puolesta Lime, Steve D (DNR)
>> Lähetetty: 4. joulukuuta 2012 21:26
>> Vastaanottaja: Saint; mapserver-users at lists.osgeo.org
>> Aihe: Re: [mapserver-users] MapServer and 24bit Images
>>
>> I display true-color imagery all the time. I suspect that's not what you're
>> trying to do though. You'll have to be more specific on format, perhaps post a
>> layer definition?
>>
>> Steve
>>
>> -----Original Message-----
>> From: mapserver-users-bounces at lists.osgeo.org [mailto:mapserver-users-
>> bounces at lists.osgeo.org] On Behalf Of Saint
>> Sent: Monday, December 03, 2012 10:06 AM
>> To: mapserver-users at lists.osgeo.org
>> Subject: [mapserver-users] MapServer and 24bit Images
>>
>> Dear all,
>>
>> I would like to have this confirmation, MapServer support 24bit image with 3
>> bands? I have one 24bit image 1 band and I can see in the browser but the
>> other with 3 bands I can't. Only appear the the outline line of the class e not
>> the image.
>>
>> Many thanks
>> José Santos
>>
>>
>>
>> -----
>> José Santos
>> GIS Analyst
>> --
>> View this message in context: http://osgeo-
>> org.1560.n6.nabble.com/MapServer-and-24bit-Images-tp5020409.html
>> Sent from the Mapserver - User mailing list archive at Nabble.com.
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>> _______________________________________________
>> mapserver-users mailing list
>> mapserver-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20121205/18ccdab3/attachment.htm>


More information about the MapServer-users mailing list