Как мне изменить мой код изменения размера изображения Python, чтобы сделать это? - PullRequest
0 голосов
/ 01 декабря 2010

Когда я изменяю размер изображения, которое меньше желаемого, я хочу, чтобы размер изображения НЕ менялся ... а вместо этого был в центре, с белым отступом вокруг него.

Итак, допустим, у меня естьзначок 50х50Но я хочу изменить его размер до 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 Ответ

3 голосов
/ 01 декабря 2010

Один из вариантов - создать пустое белое изображение нужного размера, а затем нарисовать существующее изображение в центре.

...