2017-05-05 7 views
0

を行いません。私は、次のコードを使用してサムネイルを作ってみる:枕のImage.thumbnail()は何も

import Image 

# Skipping creation of file-like object 'f' 
im = Image.open(f) 
im.thumbnail((256, im.height)) 
im.save(f, 'WebP') 
f.flush() 

docsは、このメソッドは、より大きな、自身のサムネイルバージョンが含まれている画像を変更していない」と言います与えられたサイズよりも。従って、私は出力がpreserving the aspect ratioの間に256pxの幅の中に収まることを期待します。しかし、上記のコードは効果がなく、出力画像は入力と同じ解像度を持ちます。これは常に256px幅よりも大きくなります。

希望の効果を得るにはどうすればよいですか?

答えて

0

枕のドキュメントは、そのファイルを指定し、バイナリモードでオープンする必要がありますが、ここで使用さw+bで新しいイメージは、実際には古いものに付加されます。それは、切り詰めるためにメモリとファイルに完全にロードする必要があります。作業コードは、

import Image 

# Skipping creation of file-like object 'f' 
im = Image.open(f) 
im.load() 
f.seek(0) 
f.file.truncate() 
im.thumbnail((256, im.height)) 
im.save(f, 'WebP') 
f.flush() 
です。
関連する問題