スマホで撮影した画像ファイルが数メガバイトの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日