Overlay two same sized images in Python
python, python-imaging-library
Solution
Try using blend() instead of paste() - it seems paste() just replaces the original image with what you're pasting in.
try:
from PIL import Image
except ImportError:
import Image
background = Image.open("bg.png")
overlay = Image.open("ol.jpg")
background = background.convert("RGBA")
overlay = overlay.convert("RGBA")
new_img = Image.blend(background, overlay, 0.5)
new_img.save("new.png","PNG")
Problem
I've got two images that are exactly the same dimensions, all I'm trying to do is take one, make it 50% transparent and place it directly on top of the other, like so: ``` import Image background = Image.open("bg.png") overlay = Image.open("over.png") background = background.convert("RGBA") overlay = overlay.convert("RGBA") background_pixels = background.load() overlay_pixels = overlay.load() for y in xrange(overlay.size[1]): for x in xrange(overlay.size[0]): background_pixels[x,y] = (background_pixels[x,y][0], background_pixels[x,y][1], background_pixels[x,y][2], 255) for y in xrange(overlay.size[1]): for x in xrange(overlay.size[0]): overlay_pixels[x,y] = (overlay_pixels[x,y][0], overlay_pixels[x,y][1], overlay_pixels[x,y][2], 128) background.paste(overlay) background.save("new.png","PNG") ``` But all I get is the 50% transparent overlay (so half way there!).