Библиотека изображений Python - создание и вставка изображения - PullRequest
0 голосов
/ 20 марта 2011

Как мне создать новое изображение с черным фоном и вставить поверх него другое изображение?

Я хочу превратить некоторые прозрачные значки 128x128 в значки 75x75 на черном фоне.

Не работает ...

import Image

theFile = "/home/xxxxxx/Pictures/xxxxxx_128.png"

img = Image.open(theFile)

newImage = Image.new(img.mode, img.size, "black")
newImage.paste(img)
newImage.resize((75,75))
newImage.save("out.png")

print "Done"

Спасибо!

1 Ответ

9 голосов
/ 20 марта 2011

Метод resize возвращает новый объект изображения, а не изменяет существующий. Кроме того, вы должны изменить размер изображения, прежде чем вставлять его. У меня работает следующее:

import Image

theFile = "foo.png"

img = Image.open(theFile)
resized = img.resize((75,75))
r, g, b, alpha = resized.split()

newImage = Image.new(resized.mode, resized.size, "black")
newImage.paste(resized, mask=alpha)
newImage.save("out.png")

print "Done"

Я нашел пример этой split + mask методики из этого сообщения в блоге .

Пример ввода:

Input image

Выход:

enter image description here

...