0

私は、ウェブサイトで使用する画像(この場合はIphone画像)のサイズを変更して最適化するスクリプトを作成しています。これまでのところ、私はこの単純なスクリプトを書いて、ファイルサイズを約35%削減しましたが、サイズをもっと小さくすることができると期待していました。このスクリプトをさらに最適化する方法はありますか?どんな助けでも大歓迎です!PIL画像圧縮

from PIL import Image 

img = Image.open('file location') 
newImage = img.resize((1024, 768), Image.ANTIALIAS)   

newImage.save('new file location', optimize=True, quality=95) 

newImage.show()            
+1

1つの選択肢は、より小さいサイズと85または75に設定された「品質」を考慮することです。 – srig

+0

私はそれを試みましたが、結果は残念なことに最小です。 – Stefan

+0

Photoshopでは、イメージを32色または64色(コンポーネントごとに5〜6ビット)でパレットに変換してから、.PNGまたは.GIFイメージとして保存することで、最適なサイズの縮小が得られるようです。私はあなたが 'PIL'/pillowで同じ操作をすることができると信じています。新しい画像の用途は何ですか? – martineau

答えて

1

あなたはpyguetzliとGoogleのGuetzliエンコーダを試すことができ、それは通常小さいJPEGファイルを生成しますが、かなりの時間を要し、比較:

  • 元:9.4M
  • pil_1024 * 768_q95.jpeg :638K
  • pil_1024 * 768_q85.jpeg:404K
  • guetzli_1024 * 768_q95.jpg:376K

元のjpegファイルは、wiki common、Diego Delso、CC BY-SA 4.0です。

+0

pyguetzliライブラリを使ってみましたが(有望)、スクリプトを実行しようとすると次のエラーが出る。 'ImportError:dlopen(/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6 /site-packages/pyguetzli/_guetzli.abi3.so、2):シンボルが見つかりません:__ZN7guetzli7ProcessERKNS_6ParamsEPNS_12ProcessStatsERKSsPSs 参照先:/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyguetzli/ _guetzli.abi3.so /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/pyguetzli/_guetzli.abi3.so'のフラットな名前空間での予想: – Stefan

+0

@Stefanそれはそこにあるようですあなたのマシン上のリンカーに問題がある場合は、[pyguetzliのgithub](https://github.com/wanadev/pyguetzli/issues)で問題を報告することができます。 – georgexsh

+0

私は先に進み、それをします。うまくいけば、これはすぐに、この方法を試して興奮することができます!あなたの助けをもう一度ありがとう! – Stefan