-1

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

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

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

4

2 回答 2

3
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
于 2012-09-07T01:33:55.833 回答
2

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

  1. 加载源图像
  2. 将源图像大小调整为 512x534
  3. 制作尺寸为 512x512 的新图像
  4. 将调整大小的像素复制到新图像中的矩形中,其角为(0, 69, 512, 441)
  5. 使以下两个矩形透明 (0,0,512,69)(0,441,512,512)

希望能帮助您入门

于 2012-09-06T23:38:51.620 回答