15

これは私の問題です:

import Image
im = Image.open("1.png")
im.show()
print im.mode
im.convert("RGBA").save("2.png")

さて、私の画像であなたは違いを見ることができます。
私の質問は、どうすれば正しく変換できますか?

画像:オリジナル

結果:結果

注:元の画像には半透明のグローがあり、結果には緑色の「グロー」が表示されます。

4

4 に答える 4

9

この問題はここで報告されました:

https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode

2012年3月、PILの開発バージョンで修正されたというコメントがあります。最新のリリースバージョンは1.1.7であるため、1.2がリリースされるまで修正は利用できません。PILの更新は非常に遅いため、すぐに公開されるとは思わないでください。

于 2012-09-17T18:35:43.483 に答える
5

残念ながら、PNG画像は、PILがうまく処理できないタイプです。アルファチャネルを備えたパレット画像です。画像を開くと、アルファは破棄され、元に戻す方法はありません。

これは、パレットの1つのインデックスが完全に透明なピクセルを示すために使用される通常のパレットの透明度とは異なります。

于 2012-09-17T18:01:06.937 に答える
1

あなたが使用することができますscipy.misc.imread

img = scipy.misc.imread(filename, mode='RGBA')
img = Image.fromarray(img)
于 2017-04-07T20:07:45.597 に答える
0

あなたの問題は、PILがALPHAチャネルのソースとして何を使用すべきかについての情報を提供しないことです。

PILは、それ自体では画像に透明度を追加しません。

画像のどの部分を透明にしたいですか?

于 2012-09-17T16:44:27.427 に答える