2011-12-29 5 views
2

から1つのPNGを作る:PILは、I 2枚の画像有しJPG及びPNGフレーム

  • PNG(99x97)を白色とし、フレームを回転させ、残りは完全な透明です。
  • JPGは - 今、私はそれが絵のいくつかの種類のように見えるので、私のフレームにサムネイルを置きたい私の生成されたサムネイル(80×80)

です。私は何をすべきか?

編集:私は追加するのを忘れ

、その画像がフレームの下でなければなりません。

Frame image

私はいくつかのスクリプトを持っているが、それはフレームのみが表示されます。/

import Image, ImageDraw 

img_size = (99,97) 
im = Image.open('logo.jpg') 
picture = im.crop((0,0,80,80)) 
frame = Image.open('thumb-frame.png') 
picture = picture.convert('RGBA') 
background = Image.new('RGBA', img_size, (255, 255, 255, 0)) 
background.paste(picture, (10,9)) 
background.paste(frame, (0,0)) 
background.save('logocopy.png', 'PNG') 

EDIT:解決

問題、それには画像がありません。 .paste()にアルファマスクを追加する必要がありました

import Image 

im = Image.open('logo.jpg') 
picture = im.crop((0,0,80,80)) 
picture = picture.convert('RGBA') 
frame = Image.open('thumb-frame.png') 
background = Image.new('RGBA', frame.size, (255, 255, 255, 0)) 
background.paste(picture, (10,9)) 
background.paste(frame, (0,0), frame) 
background.save('logocopy.png', 'PNG') 
+0

あなたは何を試しましたか?私たちはコードを書くつもりはありませんが、あなたのコードの問題を手伝うことができます:) –

+0

@CédricJulienは私の編集した投稿を見ます。 – tunarob

+0

最初に画像を描画し、その画像の上にフレームを描画します。フレームの透明度が正しく設定されている場合は、必要なものを取得する必要があります。 – demalexx

答えて

0

ここに行きます。これは元の画像を取り、その上に透明なフレーム画像を貼り付ける必要があります。どちらの写真も100x100でなければなりませんが、必要なサイズ変更を追加できます。

from PIL import Image 

frame = Image.open('frame.png') 
img = Image.open('image.jpg') 

img_dest = img.copy().convert('RGBA') 
img_dest.paste(frame, (0, 0, 100, 100), frame) 

img_dest = img_dest.convert('RGB') # Optional, to remove transparency info 

img_dest.save('output.png') 
関連する問題