如何修改我的Python图像缩放器代码来执行此操作?

时间:2010-11-30 22:56:22

标签: python image resize python-imaging-library

当我调整尺寸小于预期的图片时,我希望图片不会调整大小...而是位于中心,周围有白色填充。

所以,假设我有一个50x50的图标。但我想将其调整为100x100。如果我将它传递给这个函数,我希望它返回相同的居中图标,每边有25个像素的白色填充。

当然,我希望这可以处理任何宽度/高度的图像,而不仅仅是像上面例子那样的正方形。

我目前的代码如下。

我不知道为什么会这样做if height=None: height=width ...我认为这只是因为它之前我做过它。

def create_thumbnail(f, width=200, height=None):
    if height==None: height=width
    im = Image.open(StringIO(f))
    imagex = int(im.size[0])
    imagey = int(im.size[1])
    if imagex < width or imagey < height:
        return None
    if im.mode not in ('L', 'RGB', 'RGBA'):
        im = im.convert('RGB')
    im.thumbnail((width, height), Image.ANTIALIAS)
    thumbnail_file = StringIO()
    im.save(thumbnail_file, 'JPEG')
    thumbnail_file.seek(0)
    return thumbnail_file

此代码可能有很多错误,不确定。

1 个答案:

答案 0 :(得分:3)

一种选择是创建所需尺寸的空白图像,然后在中心绘制现有图像。