Наложение двух одинаковых изображений на Python

У меня есть два изображения, которые являются точно такими же размерами, все, что я пытаюсь сделать, это взять его, сделать его прозрачным на 50% и разместить его прямо поверх другого, например:

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") 

Но все, что я получаю, это 50% прозрачное наложение (так на полпути!).

3 Solutions collect form web for “Наложение двух одинаковых изображений на Python”

Попробуйте использовать blend () вместо paste () – кажется, что paste () просто заменяет исходное изображение тем, что вы вставляете.

 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") 

Предоставьте параметр альфа-маски overlay и посмотрите, дает ли это результаты, которые вы ожидали:

 background.paste(overlay, overlay.size, overlay) 

Может быть, слишком старый вопрос, можно сделать с легкостью, используя opencv

 cv2.addWeighted(img1, alpha, img2, beta, gamma) #setting alpha=1, beta=1, gamma=0 gives direct overlay of two images 

Ссылка на документацию

  • Вставить изображение в круговую диаграмму
  • как отображать и закрывать изображение в python?
  • Отображение изображения в градациях серого
  • Python, tkinter: Почему этот jpeg не отображается?
  • Как преобразовать массив Numpy в изображение PIL с использованием matplotlib colormap
  • Как узнать, почему использование функций PIL приводит к ошибке памяти?
  • Python PIL: как сделать область прозрачной в PNG?
  • PIL: миниатюра и заканчивается квадратным изображением
  • Python - лучший язык программирования в мире.