- ベストアンサー
jpegの圧縮率の取得
いつもお世話になっております。 C言語にて、jpegを開いて圧縮率(多くの画像アプリで指定する0~100までの数値)を 取得したいと思って調べております。 ご存知の方がいらっしゃいましたら何卒ご教授ください。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
JPEG の Quality (0から100まで)は, 私の記憶では,量子化行列を定数倍するための物で, 実際のファイルサイズに影響はしますが,圧縮率とは別物です. 量子化行列もソフトウェアによるし,Quality の取得は不可能です. 圧縮率は, 圧縮後のファイルサイズ / 無圧縮のファイルサイズ です. 無圧縮のファイルサイズは 縦*横*(8 or 24) bit 256 階調 gray スケールなら 8 RGB それぞれ 256 階調の true color なら 24 です.
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
JPEG画像で圧縮率というのは、JPEG画像を作成しようとするアプリケーションには必要でも画像データとしては必要ではないので、画像データの中にはその情報というのは保持されていないと思います。(勘違いコメントだったらすみません) 必要なら(メモリ上に)展開されたベタ画像サイズと元のデータサイズで圧縮率がわかると思います。
質問者
補足
お返事ありがとうございます。やはり計算しなければいけませんでしたか。算出方法かライブラリ関数があればよいのですが。もう少し調べてみたいと思います。
補足
お返事ありがとうございます。私が取得したいのはQualityのことだと思います。MagickWandのMagickGetImageCompressionQuality()で取得することが可能だとわかったのですが、MagickWandのコンパイル方法が悪かったのかもしれませんが、どうも画像が開けなかったり、不安定なようなので別の方法を探しています。何卒よろしくお願いいたします。