To Igor: > If your current method works for you and it's just about reducing disk > IO, you just could use StringIO [1] or the like and save the PNG image > to a buffer first, then check its length and conditionally save it to > disk:
Sounds very good, I will try this, thanks! Meanwhile I realized that I will have to access the disc in either case, if the image is "empty" or not. If it's empty, I will have to ensure that a possibly existing image is deleted. Nevertheless your idea will save some disk access as in most cases no write access will be necessary (a delete request for a non-existing file does not result in any disk writing). To Frederik: > In a normal mod_tile setup, this would mean that the next time someone > requests that area, the tile will be rendered again, and again, and > again, each time producing (after a series of database queries) an empty > tile. Compared to that, the cost of having a 116 byte file lying around > is rather small! Thanks for the warning! But in this project I will not use mod_tile. Everything will be rendered in advance and kept up-to-date by using osm2pgsql's dirty-tiles list. Markus -------- Original-Nachricht -------- > Datum: Fri, 12 Aug 2011 20:02:27 +0200 > Von: Igor Podolskiy <[email protected]> > An: [email protected], [email protected] > Betreff: Re: [OSM-dev] NOT-saving empty Mapnik tiles > Hi Markus, > > sorry, I misread your first mail, it's not a PIL.Image but a > mapnik.Image - it doesn't have all those fancy methods of a PIL Image. I > don't know how to convert from mapnik to PIL now, either :( My fault. > > But I just had another idea. > > If your current method works for you and it's just about reducing disk > IO, you just could use StringIO [1] or the like and save the PNG image > to a buffer first, then check its length and conditionally save it to > disk: > > import StringIO > buf = StringIO.StringIO() > # ... render the image somehow here ... > im.save(buf, 'png256') > if buf.len > 116: > f = open(tile_name, 'wb') > f.write(buf.getvalue()) > f.close() > buf.close() > > Bye > Igor > > [1] http://docs.python.org/library/stringio.html _______________________________________________ dev mailing list [email protected] http://lists.openstreetmap.org/listinfo/dev

