Redimensionamento png transparente com Python Image Library e o efeito halo

Existem algumas perguntas semelhantes sobre SO, mas nenhuma delas realmente ajudou. Basicamente, estou tentando redimensionar uma imagem png simples, como pode ser visto aqui:

http: //media.spiralknights.com/wiki-images/3/3e/Equipment-Proto_Soto_icon.pn (do mmo Spiral Knights, direitos autorais Three Rings Entertainment)

Inicialmente, eu havia implementado um utilitário que usa essas imagens em php, e o utilitário de redimensionamento funcionou perfeitamente bem. Eu usei o método descrito na página de amostras de imagens na documentação do PH

Honestamente, nem consigo redimensionar melhor no Photoshop, mas os resultados são quase desastrosos em python. Consigo consistentemente um efeito de halo e acredito que isso seja pelo menos em parte aos valores reais de RGBA dos pixels transparentes. Aqui, esta imagem diz melhor:

(o penúltimo redimensionamento foi apenas uma sugestão que vi em outro fórum para redimensionar primeiro para o dobro do tamanho final, e ajudou pelo menos um pouco, mas não o suficiente)

A imagem já está no modo RGBA quando está sendo redimensionad

Como você pode ver, os redimensionamentos do PHP e do Photoshop são livres de halo. Honestamente, tudo, exceto o redimensionamento do PHP, funciona muito, eu gosto da paleta mínima da imagem php (se você olhar para as versões maiores, poderá ver que o redimensionamento do PHP usa menos entre as cores), mas eu poderia viver da mesma maneira que o Photoshop o redimensionou, ou até a parte interna do python é redimensionada, mas a auréola é inaceitáve

Parece-me - e me corrija se eu estiver errado - que PHP e Photoshop parecem saber não usar a cor dos pixels no canal alfa ao interpolar, mas python está usando essa borda de luz, o que é diferente transparente, em seu redimensionamento.

Infelizmente, há muitos ícones diferentes que preciso redimensionar, com perfis variados, para que não sejam tão simples quanto este circular, mas esse foi apenas o primeiro que eu estava usando durante a experiênci

Não é uma questão de código por si só, mas se você precisar de algo para analisar, esta é a essênci

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

Pergunta permanente sendo: existe uma maneira de dizer à PIL para não usar a cor de um pixel que tem um alfa de 0 enquanto reamostra

questionAnswers(2)

yourAnswerToTheQuestion