2015-02-09 74 views
8

我有一個非常簡單的代碼文件:如何使用枕頭將圖像粘貼到較大的圖像上?

from PIL import Image 
til = Image.new("RGB",(50,50)) 
im = Image.open("tile.png") #25x25 
til.paste(im) 
til.paste(im,(23,0)) 
til.paste(im,(0,23)) 
til.paste(im,(23,23)) 
til.save("testtiles.png") 

然而,當我嘗試運行它,我得到以下錯誤:

Traceback (most recent call last): 
    til.paste(im) 
    File "C:\Python27\lib\site-packages\PIL\Image.py", line 1340, in paste 
    self.im.paste(im, box) 
ValueError: images do not match 

是什麼原因造成這個錯誤?他們都是RGB圖像,文檔沒有說這個錯誤。

+0

通常當2張圖像的模式不匹配時。 – runDOSrun 2015-02-09 10:53:37

回答

13

問題出現在第一次粘貼 - 根據PIL文檔(http://effbot.org/imagingbook/image.htm),如果沒有傳遞「box」參數,圖像的大小必須匹配。

編輯: 我其實誤解了文檔,你是對的,它不在那裏。但從我在這裏嘗試的,似乎不通過第二個參數,大小必須匹配。如果要保留第二張圖像的大小並將其放置在第一張圖像的左上角,請執行以下操作:

... 
til.paste(im,(0,0)) 
... 
+1

我實際上使用枕頭,PIL叉:http://pillow.readthedocs.org/然而,這是解決方案。謝謝! – user1796160 2015-02-09 11:53:21