PNG画像は、画像上のすべてのピクセルのすべてのデータを保持する必要があるため、圧縮できる範囲には制限があります。
400x400は一種の「サムネイル」として使用されるため、これをさらに減らす1つの方法は、インデックス付きモードを使用することです。
im_indexed = im_resize.convert( "P")im_resize.save(...)
*待機*
サンプルコードでエラーが発生しました:サイズ変更された画像ではなく、元の画像を保存しています:
im=Image.open(p1.photo)
im_resize = im.resize((400, 400), Image.ANTIALIAS) # best down-sizing filter
im.save(str(merchant.id)+'_logo.'+'png')
あなたがしなければならないとき:
im_resize.save(str(merchant.id)+'_logo.'+'png')
元の画像を保存し直しているだけなので、大きく見えます。おそらく、インデックスモードを使用する必要はありません。
別のこと:インデックスモードの画像はかなり見栄えが悪い可能性があります-必要になった場合は、小さいサイズを.pngではなく.jpgとして保存することをお勧めします-これらは必要に応じて小さくなり、サイズを交換できます品質のために。