[Image-SIG] [SOLVED] PIL anti-aliased scaling produces bad artifacts?

Angus charmender at gmail.com
Mon Aug 9 03:31:45 CEST 2010


>> I expected the pixels to be increasingly dark. However, the order
>> seems to be: ...white -> light gray -> dark gray -> black -> *very
>> dark gray?!* -> black...
>
> What you are seeing sounds like ringing artifacts from the lanczos
> resampling of the ANTIALIAS mode (see
> http://en.wikipedia.org/wiki/Lanczos_resampling ).
>
>> Is this intentional or not? If intentional, is there another way to
>> anti-alias edges with PIL (because I don't like these artifacts)?
>
> You could try something like this:
>
> im = im._new(im.im.stretch((15,10), Image.BILINEAR))
>
> This will try to do an anti-aliased resizing, but use a bilinear filter
> instead of the default lanczos filter. This will potentially have more
> aliasing artifacts, but should have no ringing at all.
>
> till then, David.

That works perfectly for me! Thanks  a lot!

Interesting explanation too. When I have some more free time I'll have
to look deeper at the math behind these filters.


More information about the Image-SIG mailing list