【问题标题】:Python Image Library - Create and paste imagePython 图像库 - 创建和粘贴图像
【发布时间】:2011-03-20 05:24:51
【问题描述】:

如何创建具有黑色背景的新图像并在其上粘贴另一个图像?

我想做的是将一些 128x128 透明图标变成 75x75 黑色背景图标。

不起作用...

导入图片

theFile = "/home/xxxxxx/图片/xxxxxx_128.png"

img = Image.open(theFile)

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

打印“完成”

谢谢!

【问题讨论】:

    标签: python image python-imaging-library


    【解决方案1】:

    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"
    

    我从this blog post 找到了这种split + mask 技术的示例。

    示例输入:

    输出:

    【讨论】:

    • 我得到了原始 PNG 的大小调整后的透明图像。
    • 对不起,我在一个程序中检查了结果,它似乎使用黑色背景来显示透明图像:) 我已经用固定版本更新了我的答案,这次测试正确。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    相关资源
    最近更新 更多