這是我的問題: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")
那麼,與我的形象,你可以看到其中的差別。
我的問題是:如何正確轉換它?
圖片:
結果:
注:原始圖像具有半透明發光,結果有一個堅實的綠色「發光」
在這裏報告此問題:
https://bitbucket.org/effbot/pil-2009-raclette/issue/8/corrupting-images-in-palette-mode
在2012年3月,一個評論說,它現在固定PIL的開發版本。最新發布的版本是1.1.7,因此修補程序在1.2發佈之前將不可用。 PIL更新非常慢,所以不要指望這會很快出來。
你的問題是,你不提供有關PIL應該用作ALPHA渠道來源的信息。
PIL不會爲您的圖像添加透明度。
你希望圖像的哪一部分是透明的?
在原始「P」圖像中透明和/或半透明的部分:P並自動檢測,因爲這不是我需要轉換的唯一圖像... – mDroidd
對不起,但對我而言,兩幅圖像看起來完全相同。你可以在第三個圖像上標記應該用紅色透明的部分嗎? –
不幸的是,您的PNG圖像是PIL無法很好處理的類型 - 帶有alpha通道的調色板圖像。當你打開圖像時,阿爾法被扔掉了,無法讓它恢復原狀。
這與通常的調色板透明度不同,調色板的一個索引用於表示完全透明的像素。
相關地方看看:[PngImagePlugin tRNS加載器](https://github.com/python-imaging/Pillow/blob/master/PIL/PngImagePlugin.py#L527-529)它只讀取1個字節,而不是一個字母塊和[PNG tRNS規範](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版本? –