[Tilecache] Where in TC code is metatile cutting?
Guillaume Sueur
no-reply at neogeo-online.net
Sun Jan 17 04:49:18 EST 2010
Hi,
What about using image-magick
(http://www.assembla.com/wiki/show/pythonmagickwand) to crop the
MetaTile image ?
It's maybe worth a try.
Regards,
Guillaume
Le samedi 16 janvier 2010 à 15:52 -0800, Roger André a écrit :
> Ok, well after replicating the results Ivan got earlier, I'm not
> feeling as confident as I once was. As Ivan found, the problem is
> that the palette information is being treated differently by PIL, than
> how MapServer generated it. Below are 2 short snippets that show
> this:
>
> MapServer palette output:
> -----------------
> 0: 0,0,0,0
> 1: 251,0,0,64
> 2: 250,0,0,54
> 3: 253,0,0,114
>
> PIL output:
> -----------
> 0: 0,0,0,0
> 1: 251,0,0,255
> 2: 250,0,0,255
> 3: 253,0,0,255
>
> The PIL image was created using these commnds:
> >>> import Image
> >>> image = Image.open('quant_on_mapserv.png')
> >>> assert image.mode == 'P'
> >>> transparency = image.info['transparency']
> >>> image.save('pil_test.png', transparency=transparency)
>
> While the PIL-generated image looked just fine, all of the file size
> benefits of using the "QUANTIZE=on" MapServer option were lost.
> Athough a single-band, paletted image was produced, it was just as big
> as a 4-band RGBA image created directly in MapServer.
>
> I still really don't like the idea of using a post-processing step to
> reduce the size of cached images, so I think there are 2 possible ways
> to approach the problem. One is to not care at all about what format
> is being sent into TileCache, but to implement quantizing in PIL
> itself, maybe as a tilecache.cfg option. (Note that I wasn't able to
> get quantizing to reduce image size in PIL, so maybe this isn't even
> possible.) The other option is to have the binary string of image
> data read and processed by something other than PIL, something that
> can correctly replicate the image format MapServer produces.
> Initially I was thinking that GDAL could possibly do this.
>
> Any thoughts on either of these options?
>
> Roger
> --
>
>
>
> On Fri, Jan 15, 2010 at 10:59 AM, Roger André <randre at gmail.com>
> wrote:
> Ok, will let you know what I come up with. Am still testing
> the TC code to see what it actually does with PIL. I'm not
> fully convinced that PIL cannot be made to correctly read the
> palette info of the incoming metatile. It appears this has
> been explored already, but I need to convince myself
> first. ;)
> --
>
>
>
> On Thu, Jan 14, 2010 at 12:10 AM, Guillaume Sueur
> <no-reply at neogeo-online.net> wrote:
> I've also pointed out previously that PIL is generated
> default jpeg
> images, i.e. with 75 % compression. If the wms server
> itself sends 75%
> compressed images, that can give pretty ugly images,
> and make people
> wonder why the quality is different when using
> metatile or not. As this
> should be avoided I've suggested to use a 95 %
> compression (100 %
> doesn't even quantize, and produces fat images). Here
> is the diff on
> Layer.py :
>
> 406a407,408
> > elif self.extension == 'jpeg':
> > subimage.save(
> buffer,
> self.extension,
> quality=95,
> optimize=True
> )
>
> Regards,
>
> Guillaume
>
>
> Le jeudi 14 janvier 2010 à 08:09 +0100, Ivan Mincik a
> écrit :
>
> > On Thursday 14 January 2010, Roger André wrote:
> > > Hi All,
> > >
> > > I'd like to take a stab at fixing the problem
> TileCache has with cutting up
> > > 8-bit quantized metatiles. I'm trying to find
> where in the code PIL is
> > > invoked to do this, but can't seem to put my
> finger on it. Can someone
> > > save me a bit of time and tell me where I can find
> this?
> >
> > Hi Roger,
> > I am very happy that someone is trying to solve this
> (if we mean the same problem). I have spend lot of
> time trying to
> > fix this. By my opinion, it is PIL issue which can
> not be done without hacking PIL code. You can find my
> post in PIL
> > mailinglist - with no help, but I am not very
> skilled programmer, more GIS person, so maybe You can
> make it easily.
> >
> > Here You can find my ticket with all info, code
> sample and test file.
> >
> http://hg.effbot.org/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode
> >
> > Good luck and give us know about Your progress, even
> if not successfull.
>
>
> > _______________________________________________
> > Tilecache mailing list
> > Tilecache at openlayers.org
> > http://openlayers.org/mailman/listinfo/tilecache
>
>
> _______________________________________________
> Tilecache mailing list
> Tilecache at openlayers.org
> http://openlayers.org/mailman/listinfo/tilecache
>
>
>
>
> _______________________________________________
> Tilecache mailing list
> Tilecache at openlayers.org
> http://openlayers.org/mailman/listinfo/tilecache
More information about the Tilecache
mailing list