2011-08-14 12 views
4

我使用以下代碼來疊加的圖像上使用PIL當我在其上疊加另一圖像

path = "/home/blah.png" 
background = Image.open(path) 
product = Image.open("/home/51tmBaivYhL._SL75_.jpg") 
background.paste(product, (20,40)) 
background.save("/home/newImage.jpg") 

這些是我使用作爲背景http://i.imgur.com/bwPFT.png,產品圖像的另一圖像PIL污跡圖像http://i.imgur.com/Ig6qV.jpg這就是結果顯示爲http://i.imgur.com/JfGoS.jpg

希望我能得到任何幫助。

謝謝。

編輯:另外,當我嘗試background.paste(product, (20,40), product),我得到的錯誤「ValueError異常:糟糕的透明度面具」

+0

您提供了相同的產品和結果鏈接,我認爲結果丟失了。如果沒有它,很難知道你的投訴是什麼。 –

+0

此外,「產品」圖片太小以至於無法使用。 – agf

+0

對不起,我做了更改。 @agf,任何圖像確實會導致背景在右上角出現「污跡」問題,並且出於某種原因出現灰色背景。 – iman453

回答

5

問題無關與PIL。問題是背景是一個.png,並且您正在撰寫它,然後將它輸出爲.jpg。

.png無損,非常適合合成圖像,如背景。 .jpg是有損的,非常適合照片等自然圖像。當您將背景輸出爲.jpg時,它將包含壓縮工件,您稱之爲「污跡」。

將您的最終圖像輸出爲.png。它將比.jpg更多的字節,但看起來會更好。

+0

謝謝你的回覆:)這有效,並且有道理。 – iman453

2

您正在打開帶透明度的背景PNG圖像並將結果保存爲不透明的.JPG。透明區域中的顏色可能是您用來創建PNG的圖像編輯器的剩餘部分。

+0

謝謝你的回覆:) – iman453

相關問題