Python图像库 - 创建和粘贴图像

1 投票
1 回答
17243 浏览
提问于 2025-04-16 14:03

我想知道怎么创建一张黑色背景的新图片,然后把另一张图片贴在上面。

我想把一些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 个回答

10

这个 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"

我在 这篇博客 找到了一个关于 splitmask 技术的例子。

示例输入:

输入图像

输出结果:

输出图像

撰写回答