GIMPでJPGファイルを保存するとき、保存する品質を0〜100の範囲で調整できます(89を使用)。私はアプリを使用してこの番号が保存されたファイルに何であるかを確認したようですが、そうした場合、私はそれが何であるかを理解することができません。何を使用するかについての提案はありますか?
GIMPでJPGファイルを保存するとき、保存する品質を0〜100の範囲で調整できます(89を使用)。私はアプリを使用してこの番号が保存されたファイルに何であるかを確認したようですが、そうした場合、私はそれが何であるかを理解することができません。何を使用するかについての提案はありますか?
回答:
保存すると、品質を確認できなくなります。
(保存中に品質を設定すると、許容できる損失の量がソフトウェアに通知されますが、一度保存すると、失われたものは失われます。
うーん、私は間違っていたと思う。私はまだ上記が正しいと思いますが、ImageMagickのはidentify
私が間違っていることを証明していますか?
特定-verbose myimage.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
、ImageMagickのソースコードの私の最新バージョンの843ff行。)
私はJPEGについて本当に理解するのに十分な知識はありませんが、この記事で説明されているようなことをしているようです:
Visual C#.NETを使用してJPEG品質係数を決定します(2018年1月時点でリンク切れ、2015年からarchive.orgにコピー)
そのidentify
ため、実際には、圧縮ファイルのみからJPEGの品質設定を実際に決定できます(ただし、結果は常に完全に正確であるとは限りません)。
Arjan metioned identify -verbose myimage.jpg
がそれを行います。imagemagickはCLIツールであるため、スクリプト作成に役立つ場合があります。アプローチidentify -verbose myimage.jpg | grep ...
はかなり遅くなります。このようなIMの使用をお勧めします
identify -format '%Q' myimage.jpg
それは非常に高速です。
ImageMagick ++ライブラリそれは簡単です:
Image magick_image( pathname );
size_t compressionFactor = magick_image.quality(); // 0..100