GIMPでJPGファイルを保存するとき、保存する品質を0から100まで調整できます(私は89を使用します)。この番号が保存されたファイルに何であるかを確認するためにアプリを使用したようですが、そうすると、私はそれが何であるかを一生理解できません。何を使用するかについて何か提案はありますか?
保存すると、品質はわかりません。
(保存中に品質を設定すると、許容できる損失の量がソフトウェアに通知されますが、保存すると、失われたものは失われます。何かが見栄えがよいかどうかを人間が言う必要があります。)
うーん、私は間違っていたと思います。私はまだ上記は正しいと思いますが、 ImageMagick の identify
は私が間違っていることを証明しますか?
識別-verbosemyimage.jpg 画像:myimage.jpg 形式:JPEG(Joint Photographic Experts Group JFIF形式) クラス:DirectClass ジオメトリ:358x240 + 0 + 0 解像度:300x300 [...] 圧縮:JPEG 品質:90 方向:未定義 [...]
テストの画像がどのように保存されたかはわかりませんが、EXIFデータがありません。品質はまだ画像に保存されていますか?
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の品質設定を実際に決定できます(ただし、結果は必ずしも完全に正確であるとは限りません)。
Arjanが述べたようにidentify -verbose myimage.jpg
はそれを行います。 imagemagickはCLIツールであるため、スクリプト作成に役立つ場合があります。アプローチ identify -verbose myimage.jpg | grep ...
はかなり遅いです。このようなIMを使用することをお勧めします
identify -format '%Q' myimage.jpg
それは非常に高速です。
JPEGsnoop は、ImageMagickのidentify
の優れた代替手段です。ダウンロードは非常に小さく、ポータブル形式で入手できます。
Jpgを処理すると、DQTマーカーの下に「おおよその品質係数」が表示されます。
ImageMagick ++ ライブラリを使用すると簡単です:
Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100