[解決済み] PIL Image.resize()で画像のサイズが変更されない
2022-03-03 15:44:05
質問
PILが画像のリサイズを行わないという不思議な問題があります。
from PIL import Image
img = Image.open('foo.jpg')
width, height = img.size
ratio = floor(height / width)
newheight = ratio * 150
img.resize((150, newheight), Image.ANTIALIAS)
img.save('mugshotv2.jpg', format='JPEG')
このコードは何のエラーもなく実行され、次のような名前の画像が生成されます。
mugshotv2.jpg
を正しいフォルダに保存していますが、リサイズはしていません。画像のサイズは120kbから20kbに低下しますが、寸法は同じままなので、何かしています。
また、より少ないコードで画像を正方形に切り取る方法を提案してください。私がちょっと思ったのは
Image.thumbnail
しかし、それは私の画像を幅150pxに拡大し、高さ100pxを残すというものでした。
解決方法は?
resize()
は、画像のリサイズコピーを返します。元の画像は変更されません。正しい使い方は
from PIL import Image
#...
img = img.resize((150, newheight), Image.ANTIALIAS)
お探しのものは、ImageOps.fitの機能だと思います。PILより ドキュメント :
ImageOps.fit(image, size, method, bleed, centering) => image
をサイズ調整してトリミングしたものを返します。 画像は、要求されたサイズに切り取られます。 アスペクト比とサイズを指定します。サイズ 引数は要求された出力サイズ ピクセル単位で、(幅、高さ)として与えられる。 タプルです。
関連
-
Pythonコンテナのための組み込み汎用関数操作
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み] for'ループでインデックスにアクセスする?
-
[解決済み] リスト内のアイテムのインデックスを検索する
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] PILで画像サイズを取得する方法を教えてください。
-
[解決済み】__str__と__repr__の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピロウズ画像色処理の具体的な活用方法
-
Python Decorator 練習問題
-
Python百行で韓服サークルの画像クロールを実現する
-
Python 入出力と高次代入の基礎知識
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み] データ型が理解できない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】ValueError: xとyは同じサイズでなければならない