投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償)
logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)
The Document Foundation Wiki

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2020年4月21日火曜日

【Linux CentOS 7】jpeg画像ファイルの容量を小さくしたり位置情報等を含むメタ情報(Exif)を除去したりできるコマンドライン


スマホで撮影した画像ファイルが数メガバイトのjpegである場合、
メール添付ではサーバーに送信を許可されないことがある。
その場合、jpegファイルを品質を落す代わりに容量を小さくすればよい。

必要なパッケージのインストールから、
指定した容量へのjpegファイルの最適化を記している。


■パッケージのインストール

epelリポジトリの導入を済ませる。
# yum install epel-release.noarch

パッケージのインストール
# yum install jpegoptim
インストール:
  jpegoptim.x86_64 0:1.4.6-1.el7                                             
完了しました!
パッケージの説明を表示させた。
# yum info jpegoptim
名前                : jpegoptim
アーキテクチャー    : x86_64
バージョン          : 1.4.6
リリース            : 1.el7
容量                : 58 k
リポジトリー        : installed
提供元リポジトリー  : epel
要約                : Utility to optimize JPEG files
URL                 : http://www.kokkonen.net/tjko/projects.html
ライセンス          : GPLv2+
説明                : Jpegoptim is an utility to optimize JPEG files. Provides
                    : lossless optimization (based on optimizing the Huffman
                    : tables) and "lossy" optimization based on setting maximum
                    : quality factor.


■jpegファイルの最適化

下記、最適化のついでに、画像ファイルのメタ情報(Exif)を削除したい場合は、
--strip-exif オプションも付けると良い。

メタ情報(Exif)の表示は、後述している。


〇品質ベースで最適化する。

品質を70%まで落とす代わりに画像ファイル容量を削減する。
ロスレスではないため、最適化により画質が劣化する。

元は3.7MB程度あった写真の画像ファイルは、-m70の指定によって、1.6MB程度に小さくなった。
もちろん、画像の内容に依存すると考えられる。

$ jpegoptim -m70 IMG_20200421.jpg


メタ情報(Exif)も削除したい場合:

$ jpegoptim -m70 --strip-exif IMG_20200422_133830.jpg
IMG_20200422_133830.jpg 4608x3456 24bit N Exif  [OK] 3710264 --> 1595107 bytes (57.01%), optimized.


〇とにかく指定したファイルを300kバイト程度に最適化する。

元は4MB程度あったファイルが、キロバイト単位で指定した容量にまで減った。
ロスレスではないため、最適化により画質が劣化する。

ファイルは上書きされるので注意すること。

$ jpegoptim -S300 IMG_20200421.jpg
IMG_20200421.jpg 4608x3456 24bit N Exif  [OK] 4029446 --> 303464 bytes (92.47%), optimized.


〇ヘルプを表示
$ jpegoptim --help
jpegoptim v1.4.6  Copyright (C) 1996-2018, Timo Kokkonen
Usage: jpegoptim [options] <filenames>
  -d<path>, --dest=<path>
                    specify alternative destination directory for
                    optimized files (default is to overwrite originals)
  -f, --force       force optimization
  -h, --help        display this help and exit
  -m<quality>, --max=<quality>
                    set maximum image quality factor (disables lossless
                    optimization mode, which is by default on)
                    Valid quality values: 0 - 100
  -n, --noaction    don't really optimize files, just print results
  -S<size>, --size=<size>
                    Try to optimize file to given size (disables lossless
                    optimization mode). Target size is specified either in
                    kilo bytes (1 - n) or as percentage (1% - 99%)
  -T<threshold>, --threshold=<threshold>
                    keep old file if the gain is below a threshold (%)
  -b, --csv         print progress info in CSV format
  -o, --overwrite   overwrite target file even if it exists (meaningful
                    only when used with -d, --dest option)
  -p, --preserve    preserve file timestamps
  -P, --preserve-perms
                    preserve original file permissions by overwriting it
  -q, --quiet       quiet mode
  -t, --totals      print totals after processing all files
  -v, --verbose     enable verbose mode (positively chatty)
  -V, --version     print program version
  -s, --strip-all   strip all markers from output file
  --strip-none      do not strip any markers
  --strip-com       strip Comment markers from output file
  --strip-exif      strip Exif markers from output file
  --strip-iptc      strip IPTC/Photoshop (APP13) markers from output file
  --strip-icc       strip ICC profile markers from output file
  --strip-xmp       strip XMP markers markers from output file
  --all-normal      force all output files to be non-progressive
  --all-progressive force all output files to be progressive
  --stdout          send output to standard output (instead of a file)
  --stdin           read input from standard input (instead of a file)


■画像ファイルのメタ情報について

画像ファイルのメタ情報(Exif)には、写真の撮影された位置情報などを含んでいる場合がある。
それを表示させるには、次のパッケージを導入する。

〇インストール

# yum install ImageMagick


〇たとえば、GPS情報の表示

# identify -verbose test.jpg | grep GPS
    exif:GPSInfo: ***
    exif:GPSLatitude: **/1, **/1, ****/100
    exif:GPSLatitudeRef: N
    exif:GPSLongitude: ***/1, **/1, ****/100
    exif:GPSLongitudeRef: E
    exif:GPSMapDatum: WGS-84
    exif:GPSVersionID: 2, 2, 0, 0

以上



<参考>
・無料のjpeg圧縮ツール「Jpegoptim」が結構すごい
< https://takakisan.com/jpeg-slim-tool-jpegoptim/ > 2020年4月23日

・LinuxでJPEG,PNGの画像サイズを削減する
< https://morizyun.github.io/infrastructure/tool-optimize-jpeg-png.html > 2020年4月21日

・コンソール上でImageMagickを使って画像ファイルのEXIF情報を取得する
< https://orebibou.com/2017/08/コンソール上でimagemagickを使って画像ファイルのexif情報/ > 2020年4月23日


投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad