web-dev-qa-db-ja.com

JPG品質を見つける方法は?

GIMPでJPGファイルを保存するとき、保存する品質を0から100まで調整できます(私は89を使用します)。この番号が保存されたファイルに何であるかを確認するためにアプリを使用したようですが、そうすると、私はそれが何であるかを一生理解できません。何を使用するかについて何か提案はありますか?

16
Nathaniel

保存すると、品質はわかりません。

(保存中に品質を設定すると、許容できる損失の量がソフトウェアに通知されますが、保存すると、失われたものは失われます。何かが見栄えがよいかどうかを人間が言う必要があります。)

うーん、私は間違っていたと思います。私はまだ上記は正しいと思いますが、 ImageMagickidentify は私が間違っていることを証明しますか?

識別-verbosemyimage.jpg 
 
画像:myimage.jpg 
形式:JPEG(Joint Photographic Experts Group JFIF形式)
クラス:DirectClass 
ジオメトリ:358x240 + 0 + 0 
解像度:300x300 
 [...] 
圧縮:JPEG 
品質:90 
方向:未定義
 [...]

テストの画像がどのように保存されたかはわかりませんが、EXIFデータがありません。品質はまだ画像に保存されていますか?

22
Arjan

Arjanの答えに追加するには:

ImageMagickのidentifyは、実際にJPEG画像の内部を調べて、エンコードに使用された品質設定を推測しているようです。

ImageMagickのソースコード(フリーソフトウェアを応援:-))には次の行が含まれています

/*
  Determine the JPEG compression quality from the quantization tables.
*/
sum=0;
for (i=0; i < NUM_QUANT_TBLS; i++)
{
  if (jpeg_info.quant_tbl_ptrs[i] != NULL)
    for (j=0; j < DCTSIZE2; j++)
      sum+=jpeg_info.quant_tbl_ptrs[i]->quantval[j];

coders/jpeg.c、843行目以降。 ImageMagickのソースコードの最近のバージョン)。

本当に理解するのに十分なJPEGについては知りませんが、この記事で説明されているようなことをするようです:

Visual C#.NETを使用してJPEG品質係数を決定します (2018年1月の時点でリンクが停止しています; copy on 2015年からのarchive.org

そうです、identifyは、圧縮ファイルだけからJPEGの品質設定を実際に決定できます(ただし、結果は必ずしも完全に正確であるとは限りません)。

28
sleske

Arjanが述べたようにidentify -verbose myimage.jpgはそれを行います。 imagemagickはCLIツールであるため、スクリプト作成に役立つ場合があります。アプローチ identify -verbose myimage.jpg | grep ...はかなり遅いです。このようなIMを使用することをお勧めします

identify -format '%Q' myimage.jpg

それは非常に高速です。

6
ManuelSchneid3r

JPEGsnoop は、ImageMagickのidentifyの優れた代替手段です。ダウンロードは非常に小さく、ポータブル形式で入手できます。

Jpgを処理すると、DQTマーカーの下に「おおよその品質係数」が表示されます。

3
idmadj

ImageMagick ++ ライブラリを使用すると簡単です:

Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100
1
Valeriy Van

Picasa 3には、jpeg品質を表示するプロパティペインがありますが、現時点ではアバンダンウェアです。 Picasa 3 Dick Masterson

1