これは私の問題です:PIL画像モード "P" - > "RGBA"
import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
さて、あなたは違いを見ることができます私のイメージで。
私の質問は:正しく変換するにはどうすればいいですか?
画像:
結果:
注:元画像が半透明の輝きを持って、結果が持っている固体
これは私の問題です:PIL画像モード "P" - > "RGBA"
import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")
さて、あなたは違いを見ることができます私のイメージで。
私の質問は:正しく変換するにはどうすればいいですか?
画像:
結果:
注:元画像が半透明の輝きを持って、結果が持っている固体
この問題は、ここで報告された:2012年3月には
https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode
は、コメントは、それが今PILの開発版で修正されていますと言います。最新のリリース版は1.1.7なので、1.2が出るまで修正版は入手できません。 PILアップデート非常にですので、すぐにこれが出てくるとは思わないでください。
あなたの問題はあなたがいないということである緑色の「グロー」 PILがALPHAチャネルのソースとして使用する必要がある情報を提供します。
PILは画像に透明度を追加することはありません。
画像のどの部分を透明にしたいですか?
元の「P」画像で透明または半透明の部分:Pおよび自動検出も変換する必要がある唯一の画像ではありません。 – mDroidd
申し訳ありませんが、どちらの画像も同じように見えます。あなたは赤で透明になるはずの3番目のイメージ部分に印を付けることができますか? –
残念ながら、あなたのPNG画像は、PILが非常にうまく処理できないタイプです。アルファチャンネルを持つパレット画像です。画像を開くと、アルファは投げ捨てられ、戻す方法はありません。
これは、パレットの1つのインデックスが完全に透明なピクセルを示すために使用される通常のパレットの透明度とは異なります。
関連する場所:[PngImagePlugin tRNSローダー](https://github.com/python-imaging/Pillow/blob/master/PIL/PngImagePlugin.py#L527-529)ここでは、アルファの代わりに1バイトしか読み込まれませんブロック、[PNG tRNS spec](http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.tRNS)を参照してください。 – jterrace
あなたはscipy.misc.imread
を使用することができます。
img = scipy.misc.imread(filename, mode='RGBA')
img = Image.fromarray(img)
あなたは問題が多分、何であるかを説明してもらえますか? – mwcz
あなたは実際に違いが何であるかは言いません。前後の画像は含まれていますか? –
テスト済みです。違いは見られませんでした。どのようなpythonとpilのバージョンを使用していますか? –