PIL - 在.png周围添加透明度

时间:2012-09-06 20:30:05

标签: python python-imaging-library

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

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

我正在尝试使用Python Imaging Library执行此操作。我对此很陌生,所以如果有人可以帮助我,那将非常感激。

2 个答案:

答案 0 :(得分:2)

好的,你发布问题已经两个小时了。既然你还没有发布代码而且没有人发布过答案,那么这里就是让你开始的东西:

  1. 加载源图像
  2. Resize the source image至512x534
  3. 制作尺寸为512x512的新图片
  4. 将已调整大小的像素复制到新图像中的角度为(0, 69, 512, 441)
  5. 的矩形中
  6. Make the following two rectangles transparent (0,0,512,69)(0,441,512,512)
  7. 希望能帮助您入门

答案 1 :(得分: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