I\'m getting about the same bad looking resizing from all the 4 algorithms of PIL
>>> data = utils.fetch(\"http://wavestock.com/images/beta-ico
Try using the resize() method instead of thumbnail(). In my experience, they behave very differently.
resize()
thumbnail()
Also, your code shows reading a .gif, but your original is .png. Make sure you really have all the original data before you start reducing it.