3

円で囲まれたpngファイルを作成するpythonプログラムがあります。ここで、アルファ値を指定して、この円を半透明にしたいと考えています。

これが私がすることです:

img_map = Image.new(some arguments here)
tile = Image.open('tile.png')
img_map.paste(tile, (x,y))
canvas = ImageDraw.Draw(img_map)

# Now I draw the circle:
canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5), fill=(255, 128, 10))

# now save and close
del canvas
img_map.save(path_out + file_name, 'PNG')

楕円を半透明にするにはどうすればよいですか?

ありがとう

4

2 に答える 2

3

3 タプルの RGB 値 (255, 128, 10) の代わりに、4 タプルの RGBA 値を渡します。

canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5), 
               fill=(255, 128, 10, 50))

例えば、

import Image
import ImageDraw

img = Image.new('RGBA', size = (100, 100), color = (128, 128, 128, 255))
canvas = ImageDraw.Draw(img)

# Now I draw the circle:
p_x, p_y = 50, 50
canvas.ellipse((p_x - 5, p_y - 5, p_x + 5, p_y + 5), fill=(255, 128, 10, 50))

# now save and close
del canvas
img.save('/tmp/test.png', 'PNG')

ここに画像の説明を入力

于 2013-04-29T10:45:49.093 に答える
0

Image.composite(background, foreground, mask)前景の半透明の円をマスクしていました。

ここからの指示に従いました: Merging background with transparent image in PIL

@gareth-resに感謝

于 2013-04-29T18:29:34.080 に答える