From: Filipe P. A. F. <oc...@gm...> - 2010-03-28 03:55:00
|
Hello list I've trying for a while a "python only" solution to remove white spaces that Basemap generate to keep the aspect ratio. I found these two threads that explain the issue better: http://www.mail-archive.com/mat...@li.../msg14430.html http://www.mail-archive.com/mat...@li.../msg14262.html In the past I relied on ImageMagick's "convert" command with the "-trim white" option for the job. However, just recently I came across with this other list and a PIL solution: http://mail.python.org/pipermail/image-sig/2008-July/005092.html Here is how I'm doing: savefig('mapa.png', dpi=300) from PIL import Image im = Image.open("mapa.png") def trim(im, border): from PIL import ImageChops bg = Image.new(im.mode, im.size, border) diff = ImageChops.difference(im, bg) bbox = diff.getbbox() if bbox: return im.crop(bbox) else: # found no content raise ValueError("cannot trim; image was empty") im2=trim(im,'white') im2.show() This works and the aspect ratio is preserved, but as you can see, it is not a very smart implementation. I save and then reload it again... any suggestions to improve this are welcome. Also, I have not tried this on figures with labels and annotations. Thanks for any input. ***************************************************** Filipe Pires Alvarenga Fernandes University of Massachusetts Dartmouth 200 Mill Road - Fairhaven, MA Tel: (508) 910-6381 Email: fal...@um... oc...@ya... oc...@gm... http://ocefpaf.tiddlyspot.com/ ***************************************************** |