Комбинирование двух цветов для создания нового цвета не сохраняется должным образом - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь объединить красный и синий цвета, чтобы создать фиолетовый с помощью подушки, это код, который у меня есть.

from PIL import Image

red = Image.open('red.jpg')
blue = Image.open('blue.jpg')

red.putalpha(120)
blue.putalpha(120)

blue.paste(im=red, box=(0,0), mask=red)

blue.show()

blue.save('res.png')

Однако, когда я прошу его показать мне картинку, я вижу ее на короткую секунду, а затем она исчезает. Я попытался сохранить его в файл, но, похоже, он там тоже есть, хотя файл занимает память, показывая мне, что в этом файле что-то есть, но его просто не видно

1 Ответ

1 голос
/ 18 июня 2020

Если вы хотите комбинировать цвета, вам нужно сделать:

  • нижний слой (слой 0) имеет непрозрачность 100%,
  • второй слой (слой 1) имеет 50% непрозрачности,
  • третий слой (слой 2) имеет непрозрачность 33,33%

В общем, слой N требует непрозрачности 1/(N+1) непрозрачности.

Итак , так как у вас 2 слоя, ваши непрозрачности должны быть 100% и 50%.

Здесь, в Кембридже, в цвете есть хороший учебник .

...