4

PIL を使用して jpg/bmt を png に変換およびサイズ変更しました。簡単にサイズ変更して png に変換できますが、新しい画像のファイル サイズが大きすぎます

im=Image.open(p1.photo)
im_resize = im.resize((400, 400), Image.ANTIALIAS)    # best down-sizing filter
im.save(str(merchant.id)+'_logo.'+'png')

画像サイズを縮小するために他に何をしなければなりませんか?

4

2 に答える 2

4

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として保存することをお勧めします-これらは必要に応じて小さくなり、サイズを交換できます品質のために。

于 2012-08-13T12:39:46.180 に答える
0

PNGOUTなどの他のツールを使用できます

于 2012-08-13T08:27:24.933 に答える