0
希望よりも小さい画像のサイズを変更すると、画像のサイズが変更されないようにしたいのですが、代わりに中央に白い詰め物があります。これを行うにはPythonイメージリサイザーコードを変更するにはどうすればよいですか?
だから、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
このコードがわからない、それには多くのバグを有することができます。
入力画像が小さい場合は、Image.newで空白の画像を作成し、ペーストを使用して画像を空白の画像の中央に配置します –