SOにはいくつかの類似の質問がありますが、本当に助けられたものはありません。基本的に私はここに見られるように、シンプルなPNG画像のサイズを変更しようとしています:Pythonイメージライブラリとハロー効果による透明なPNGサイズ変更
http://media.spiralknights.com/wiki-images/3/3e/Equipment-Proto_Sword_icon.png
私はPHPでこれらのイメージを使用するユーティリティを実装し、もともとあった(MMOスパイラル騎士、著作権スリーリング・エンターテイメントから)、そこでのリサイズユーティリティは完璧に機能しました。 PHPのドキュメンテーションのimagecopyresampledページに記載されている方法を使用しました。
正直なところ私はPhotoshopでサイズを変更することさえできませんが、結果はPythonではほとんど悲惨です。私は一貫してハロー効果を得て、これは少なくとも部分的に透過ピクセルの実際のRGBA値と考えています。ここで、この絵は良いことを伝えます:
(最後のサイズ変更に二
は、最初に二回、最終的な大きさのサイズを変更するには、私は別のフォーラムで見ただけの提案であり、それは助けには、少なくとも少しDID、十分ではありません)
画像のサイズを変更すると、画像はすでにRGBAモードになっています。
ご覧のとおり、PHPとPhotoshopのサイズ変更にはハローフリーです。正直なところ、PHPのサイズ変更以外のすべては、あまりにも機能しますが、私はPHPイメージの最小限のパレットが好きです(より大きなバージョンを見ると、PHPリサイズの色の差は小さく見えます)。しかし、Photoshopそれをサイズ変更したか、またはPython内部のサイズを変更しても、ハローは受け入れられません。
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をしないように指示する方法がありますリサンプリング中にアルファが0のピクセルの色を使用しますか?
PILを知らないが、RGBa(RGBAではない)を使用して、画像を事前に乗算されたアルファであると見なすように指示しましたか? – rotoglup
私はなかったので、提案に感謝!残念ながら、PILはRGBaをpngとして書くことができないようです。 "IOError:PNG形式のRGBaを書き込めません" – cogs
Photoshop Bicubicの結果が好きなら、おそらく 'Image.BICUBIC'または' Image.NEAREST'が良いでしょうか? http://pastebin.com/VRBKWZUh – reclosedev