🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

3回答

3385閲覧

pythonの画像圧縮について

yuya92

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/12/11 09:16

pythonで画像の圧縮をする機能を作ろうと考えています。

https://www.iloveimg.com/ja/compress-image/compress-jpg
理想は上記のオンライン圧縮サービスのような形です。
※品質をある程度保ったまま、可能な限り圧縮処理を行うイメージ

PILを使用して実装してみたところ、圧縮自体はできたのですが、"品質をある程度保つ"という実装をどのように書けばいいのかが分かりません。

【参考コード】

from PIL import Image img = Image.open('読み込みファイルパス') img.save('書き込みファイルパス', quality=60)

なにか良い方法あればご教授いただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2020/12/11 10:14

jpg であれば quality=60 は低すぎなのでは? quality=90 ぐらいでいいと思います
guest

回答3

0

Also check this image compression site : https://jpegcompress.com

投稿2022/06/28 12:00

rsneha

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「品質」というものの判断には、人間の主観が入ります。
「どの程度まで画質を下げても問題ないか」や「サブサンプリングのon/offのどちらが(容量の割に)高画質か」は、本質的には人間しか判断できません。
しかし判断のために常に人間を使うのは不便ですから、なるべく人間の判断に合うような機械的な基準が様々に提案されています。
最も基本的なものとしてPSNR(peak signal-to-noise ratio)があり、まあとりあえずはこれでだいたいの用は足りると思います。(サブサンプリングon/offの判断は難しそうな気もする)
あとSSIMなるものの紹介があったので貼っておきます。
MSE/PSNR vs SSIM の比較画像紹介

なお量子化テーブルのいわゆる「最適化」、プログレッシブのon/off、画像以外の情報の除去あたりは画質に影響しないので単純にサイズの少ない方を選べばよいです。

投稿2020/12/22 00:50

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「JPEG」という画像フォーマットを使用することで、画像サイズの削減と品質維持を両立することが可能です。

下記コードは、PILでJPEGフォーマットを使用し、さらに画質劣化の原因となるサブサンプリングを不使用にして保存する例です。

from PIL import Image im = Image.open('sample.bmp') im.save('sample.jpg', format='JPEG', subsampling=0, quality=100)

qualityの値を下げればその分品質が犠牲になりますがサイズは減ります。

(どの程度の品質かは主観によります)

投稿2020/12/11 09:51

編集2020/12/11 10:15
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問