Cambiar el tamaño de PNG transparente con Python Image Library y el efecto de halo

Hay un par de preguntas similares sobre SO, pero ninguna de ellas realmente ayudó. Básicamente estoy tratando de cambiar el tamaño de una imagen png simple, como se ve aquí:

http: //media.spiralknights.com/wiki-images/3/3e/Equipment-Proto_Sword_icon.pn (de mmo Spiral Knights, copyright Three Rings Entertainment)

riginalmente había implementado una utilidad que usa estas imágenes en php, y la utilidad de cambio de tamaño funcionó perfectamente bien. Utilicé el método descrito en la página imagecopyresampled en la documentación de PHP.

Sinceramente, ni siquiera puedo lograr que cambie de tamaño mejor en Photoshop, pero los resultados son casi desastrosos en Python. Constantemente obtengo un efecto de halo, y creo que esto es al menos en parte a los valores reales de RGBA de los píxeles transparentes. Aquí, esta imagen lo dice mejor:

(el penúltimo cambio de tamaño fue solo una sugerencia que vi en otro foro para cambiar el tamaño primero al doble del tamaño final, y ayudó al menos un poco, pero no lo suficiente)

La imagen ya está en modo RGBA cuando se está redimensionando.

Como puede ver, los tamaños de PHP y Photoshop no tienen halo. Honestamente, todo menos el cambio de tamaño de PHP funciona DEMASIADO, me gusta la paleta mínima en la imagen de php (si observa las versiones más grandes, puede ver que el cambio de tamaño de PHP usa menos entre colores), pero podría vivir con la forma en que Photoshop lo ha cambiado de tamaño, o incluso la parte interior del tamaño de Python, pero el halo es inaceptable.

Me parece, y corrígeme si me equivoco, que PHP y Photoshop parecen saber que no deben usar el color de los píxeles en el canal alfa cuando interpolan, pero Python está usando ese borde claro, que de otra manera transparente, en su tamaño.

esafortunadamente, hay muchos iconos diferentes que necesito cambiar de tamaño, con diferentes perfiles, por lo que no todos son tan simples como este circular, pero este fue solo el primero que estaba usando mientras experimentaba.

No es una gran pregunta de código en sí misma, pero si necesita algo para mirar, entonces esta es la esencia:

>> 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')

Pregunta eventual: ¿hay alguna manera de decirle a PIL que NO use el color de un píxel que tiene un alfa de 0 durante el remuestreo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta