は、現在、私が使用しています:縦横比を維持した画像のサイズを変更し、縦長画像と横長画像を正確に同じサイズにしますか?
os.chdir(album.path)
images = glob.glob('*.*')
# thumbs size
size = 80,80
for image in images:
#create thumb
file, ext = os.path.splitext(image)
im = Image.open(os.path.join(album.path,image))
im.thumbnail(size, Image.ANTIALIAS)
thumb_path = os.path.join(album.path, 'thumbs', file + ".thumb" + ".jpeg")
im.save(thumb_path)
を、これは動作しますが、私は、異なるサイズの画像(一部は肖像画であり、一部はランドスケープある)で終わるが、私はすべての画像が正確なサイズを持っていると思います。多分合理的な切り取り?
UPDATE:
私は画像の小さな部分を切り取る気にしません。私が合理的な切り抜きを言ったとき、私はこのような何かを意味していました。
if image is portrait:
make width 80px
crop the height (will be more than 80px)
else if image is landscape:
make height 80px
crop the width to 80px (will be more than 80px)
は、マニュアルを読んで考えてみましょう。 'thumnail'メソッドは画像のアスペクトを保存することを意味します。すべての画像が同じアスペクト比を持つわけではないので、明らかに両方を持つことはできません。レシオを維持しないで再スケーリングしたい場合は、 'resize'の使用を検討してください。 –
余分な領域を一定の色で塗りつぶしたい場合、彼は同じサイズにすることができます。そうすれば、4x3または16x9または任意のアスペクト画像を80x80の所定の次元に収めることができます – jdi
残念ながら、クロッピングのための「感覚的」を定義する標準的な方法はありません。画像から四角形を切り抜きたいと思うように思えます。つまり、本当に残したい部分を切り取る危険性があります。 –