On Thu, Nov 12, 2009 at 3:59 PM, Ivan Elchin <ivanger...@gmail.com> wrote: > I have a problem, when i resizing an image with alphachannel.
You can try converting your image to RGBa (premultiplied alpha), resizing it, then converting back to RGBA. The problem here is that there are dirty pixels with 0 alpha, and they get interpolated like everything else. On my PIL this works: from PIL import Image im = Image.open("sega.png") im = im.convert("RGBa") cur_width, cur_height = im.size new_width, new_height = (200, 200) if not new_width == 0 and not new_height == 0: ratio = min(float(new_width)/cur_width, float(new_height)/cur_height) else: if new_width == 0: ratio = float(new_height)/cur_height else: ratio = float(new_width)/cur_width new_dimensions = (int(round(cur_width*ratio)), int(round(cur_height*ratio))) new_im = im.resize(new_dimensions, Image.ANTIALIAS) new_im = new_im.convert("RGBA") new_im.save('rez.png') Though my PIL has many modifications, I'm not sure if RGBA->RGBa->RGBA is implemented in vanilla 1.1.6. (after checking) Ah, yes, it's not. Though you can try recompiling PIL with this patch: http://git.kitsu.ru/patched/pil.git?a=commitdiff;h=b8f1c572430b06b5d4294fb2bf29327275120554 _______________________________________________ Image-SIG maillist - Image-SIG@python.org http://mail.python.org/mailman/listinfo/image-sig