Прозрачное изменение размера png с помощью библиотеки изображений Python и эффекта ореола

Есть пара похожих вопросов по SO, но ни один из них не помог. В основном я пытаюсь изменить размер простого изображения PNG, как показано здесь:

http://media.spiralknights.com/wiki-images/3/3e/Equipment-Proto_Sword_icon.png (от mmo Spiral Knights, авторское право Three Rings Entertainment)

Первоначально я реализовал утилиту, которая использует эти изображения в php, и утилита изменения размера работала там отлично. Я использовал метод, описанный на странице imagecopyresampled в документации PHP.

Честно говоря, я даже не могу заставить его изменить размер в Photoshop, но в Python результаты почти катастрофические. Я последовательно получаю эффект ореола, и я полагаю, что это по крайней мере частично соответствует фактическим значениям RGBA прозрачных пикселей. Здесь эта картина говорит лучше:

(Второе-последнее изменение размера было только предложением, которое я видел на другом форуме, чтобы изменить размер первого до двойного окончательного размера, и это ДЕЙСТВИТЕЛЬНО помогло хотя бы немного, но не достаточно)

Изображение уже находится в режиме RGBA, когда оно изменяется.

Как вы можете видеть, PHP и Photoshop не изменяют размеры. Честно говоря, все, кроме изменения размера PHP, делает СЛИШКОМ большую работу, мне нравится минимальная палитра в изображении php (если вы посмотрите на более крупные версии, вы увидите, что изменение размера PHP использует меньше между цветами), но я мог бы жить с тем, как Photoshop изменил его размер или даже изменил размер внутренней части питона, но ореол недопустим.

Мне кажется - и исправьте меня, если я ошибаюсь - что PHP и Photoshop, кажется, знают, что не используют цвет пикселей в альфа-канале при интерполяции, но python использует эту светлую границу, которая в противном случае прозрачна в своем размере.

К сожалению, есть много разных значков, которые мне нужно изменить, с разными профилями, поэтому они не так просты, как этот круглый, но это был только первый, который я использовал во время экспериментов.

Это не большой вопрос кода сам по себе, но если вам нужно что-то посмотреть, то это суть:

>> import Image
>> img = Image.open('swordorig.png')
>> img
<PngImagePlugin.PngImageFile image mode=RGBA size=256x256 at 0x2A3AF58>
>> img.resize((36,36), Image.ANTIALIAS).save('swordresize.png')

В конечном итоге возникает вопрос: есть ли способ сказать PIL NOT, что при повторной дискретизации используется цвет пикселя с альфа-значением 0?

Ответы на вопрос(1)

Ваш ответ на вопрос