画像を扱う Python スクリプトを書いています。画像をアーカイブに入れずに圧縮し、解凍して元に戻すことができるモジュールはありますか? (たとえば、1MB の画像は圧縮後 0.8MB になり、解凍後は 1MB になります)。
アーカイブを使用せずに Python で画像を圧縮および解凍するサンプル コードを見ることはできますか?
すでにいくつかのモジュールを見てきましたが、それらは文字列を圧縮します。
画像を扱う Python スクリプトを書いています。画像をアーカイブに入れずに圧縮し、解凍して元に戻すことができるモジュールはありますか? (たとえば、1MB の画像は圧縮後 0.8MB になり、解凍後は 1MB になります)。
アーカイブを使用せずに Python で画像を圧縮および解凍するサンプル コードを見ることはできますか?
すでにいくつかのモジュールを見てきましたが、それらは文字列を圧縮します。
おそらく、Python Image Library (PIL)と、PNGおよびJPEG形式を確認することをお勧めします。
PIL Image.save()メソッドを使用すると、PNG または JPEG 画像を保存できます。
PNG - ロスレス。単色または少数の色を含む「カートゥーン」/ロゴ画像に適しています。
JPEG - 不可逆で、写真や「進行中」の画像に適しています。
PNG や JPEG などの最新の画像形式はすでに圧縮されています。私の一般的な推奨事項は、Brendan Long のアドバイスに従って、これらの形式を使用し、それらに加えられたすべての作業を活用することです。
そうは言っても、Python で任意のファイルの内容を圧縮したい場合は、非常に簡単な例を次に示します。
import zlib
with open("MyImage.jpg", "rb") as in_file:
compressed = zlib.compress(in_file.read(), 9)
with open("MyCompressedFile", "wb") as out_file:
out_file.write(compressed)