Hi Ivan,<br><br>One thing I&#39;ve started looking at is to have GDAL do the image cutting.  GDAL preserves the palette information exactly, as you can test by taking an image generated by MapServer and cropping it with gdal_translate.  The problem lies in getting the MapServer image data fed directly into GDAL, without creating a file on disk for it to read.  The best I&#39;ve been able to do so far is to embed the WMS request URL directly into the GDAL api call.  So you get something that looks like this:<br>
<br>url = &quot;<a href="http://localhost/cgi-bin/mapserv?map=/var/www/mapfiles/sav0656/basemap.map&amp;layers=Ditches&amp;styles=&amp;service=WMS&amp;width=1056&amp;format=image%2Fpng&amp;request=GetMap&amp;height=1056&amp;srs=EPSG%3A900913&amp;version=1.1.1&amp;bbox=19411336.2028%2C19411336.2028%2C60738697.1524%2C60738697.1524">http://localhost/cgi-bin/mapserv?map=/var/www/mapfiles/sav0656/basemap.map&amp;layers=Ditches&amp;styles=&amp;service=WMS&amp;width=1056&amp;format=image%2Fpng&amp;request=GetMap&amp;height=1056&amp;srs=EPSG%3A900913&amp;version=1.1.1&amp;bbox=19411336.2028%2C19411336.2028%2C60738697.1524%2C60738697.1524</a>&quot;<br>
<br>gdal.Open(url)<br><br>From there, you can use GDAL to operate on the image directly.   I haven&#39;t figured out all of the cropping sysntax yet, but all of the information needed to do it is present in the Metatile info.<br>
<br>Roger<br>--<br><br><br><br><div class="gmail_quote">On Tue, Jan 19, 2010 at 11:52 PM, Ivan Mincik <span dir="ltr">&lt;<a href="mailto:ivan.mincik@gista.sk">ivan.mincik@gista.sk</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im"><br>
&gt; Ivan,<br>
&gt;<br>
&gt; Using PythonMagick, I was able to create the following image:<br>
&gt;<br>
&gt; <a href="http://img35.imageshack.us/img35/6583/testyi.png" target="_blank">http://img35.imageshack.us/img35/6583/testyi.png</a><br>
&gt;<br>
&gt; using this code:<br>
&gt;<br>
&gt; import PythonMagick<br>
&gt; import urllib<br>
&gt;<br>
&gt; data = urllib.urlopen(&quot;<a href="http://gista.sk/dl/test.png" target="_blank">http://gista.sk/dl/test.png</a>&quot;)<br>
&gt; blob = PythonMagick.Blob(data.read())<br>
&gt; image = PythonMagick.Image(blob);<br>
&gt; image.quantizeColors(256)<br>
&gt; image.quantizeDither(False)<br>
&gt; image.quantize()<br>
&gt; image.write(&quot;/tmp/test.png&quot;)<br>
&gt;<br>
&gt; PythonMagick can be somewhat difficult to unstall, although it was<br>
&gt; trivial on Ubuntu server as a package already exists for it.<br>
<br>
</div>Thanks a lot for this example.<br>
I seems that original quantized image from UMN Mapserver is loaded by ImageMagick to some internal structure and than it<br>
can be processed (cut metaTiles to tiles, ...). If I want to save it to same format as it was produced by UMN Mapserver<br>
I need to use quantize again in ImageMagick. Resulting palette is totally different to original so UMN Mapserver<br>
quantization is lost/replaced by ImageMagick and therefore is not needed - I rather can produce RGBA images from UMN<br>
Mapserver to save CPU.<br>
<br>
Still, we don&#39;t have a solution for cutting quantized metaTiles in python and saving them back without any changes to<br>
palette.<br>
<div class="im"><br>
&gt; You appear to have better results with MapServer and indexed RGB<br>
&gt; output.  I was never able to get the fonts looking good, hence the<br>
&gt; post-processing to reduce the color depth with ImageMagick.  Can you<br>
&gt; share your OUTPUTFORMAT section of your map file?<br>
<br>
</div>My outputformat section. Using UMN Mapserver 5.2.x<br>
<br>
        OUTPUTFORMAT<br>
                NAME &quot;PNG_AGGAQ&quot;<br>
                DRIVER &quot;AGG/PNG&quot;<br>
                MIMETYPE &quot;image/png&quot;<br>
                IMAGEMODE RGBA<br>
                FORMATOPTION &quot;QUANTIZE_FORCE=ON&quot;<br>
                FORMATOPTION &quot;QUANTIZE_DITHER=OFF&quot;<br>
                FORMATOPTION &quot;QUANTIZE_COLORS=256&quot;<br>
                FORMATOPTION  &quot;INTERLACE=OFF&quot;<br>
                EXTENSION &quot;png&quot;<br>
        END<br>
<font color="#888888"><br>
Ivan<br>
</font><br>_______________________________________________<br>
Tilecache mailing list<br>
<a href="mailto:Tilecache@openlayers.org">Tilecache@openlayers.org</a><br>
<a href="http://openlayers.org/mailman/listinfo/tilecache" target="_blank">http://openlayers.org/mailman/listinfo/tilecache</a><br>
<br></blockquote></div><br>