【问题标题】:PIL - Add transparency around .png [closed]PIL - 在.png周围添加透明度[关闭]
【发布时间】:2012-08-31 17:39:29
【问题描述】:

我有几个 586 x 428 的 .png。我需要将它们转换为 512 x 512 的 .png。我想这样做而不拉伸图像。所以基本上,我想将宽度缩小到 512,然后在原始图像上方和下方的高度添加等量的透明度。

因此,最终产品将是一个 .png,大小为 512 x 512,顶部和底部的透明度为 69 像素,图像的“彩色”部分为 512 x 374。

我正在尝试使用 Python Imaging Library 来做到这一点。我对此很陌生,所以如果有人可以帮助我,那将不胜感激。

【问题讨论】:

标签: python python-imaging-library


【解决方案1】:
from PIL import Image

def adjust(image):
    image = image.convert('RGBA')
    width, height = image.size
    new_width = 512
    new_height = new_width * height // width
    image = image.resize((new_width, new_height), resample=Image.ANTIALIAS)
    new_image = Image.new('RGBA', (512, 512), (0, 0, 0, 0))
    upper = (512 - image.size[1]) // 2
    new_image.paste(image, (0, upper))
    return new_image

【讨论】:

    【解决方案2】:

    好的,距离您发布问题已有两个小时。由于您尚未发布代码并且没有人发布答案,因此以下内容可以帮助您入门:

    1. 加载源图片
    2. Resize the source image 到 512x534
    3. 制作尺寸为 512x512 的新图像
    4. 将调整大小的像素复制到新图像中的矩形中,其角为(0, 69, 512, 441)
    5. Make the following two rectangles transparent (0,0,512,69) 和 (0,441,512,512)

    希望能帮助您入门

    【讨论】:

    • 我编写了一个模块来完成大部分工作 github.com/jvanasco/imagehelper 可以从中提取相关部分,并使用上面的线索在很短的时间内完成一些功能齐全的工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 2011-10-21
    相关资源
    最近更新 更多