画像圧縮くらいエンジニアでやってしまおう
はじめに
ラブグラフエンジニアの熊谷です。
タスクを始めたとき画像の圧縮が足りずに、必要以上のファイルサイズになっているときありますよね?
その際、デザイナーさんに再生成を依頼して(ときにはPMを通して)やるのもいいですが、
簡単な編集くらいエンジニアでやってしまいましょう。それもエンジニアらしくコマンドラインで
ということで今回は、ImageMagickを使った画像の圧縮についてのお話です。
よろしくお願いします。
ImageMagickとは?
ImageMagickとは、オープンソースのソフトウェアで、画像の作成、編集、合成を行うためのツールです。様々な画像形式(JPEG、PNG、GIF、TIFFなど)をサポートしており、コマンドラインから操作できるのが特徴です。
画像の変換、画像のリサイズ、画像の回転、フィルタ、テキストの追加、GIFアニメーションの作成などの操作をコマンドから利用可能です。
ImageMagick 自体はC言語で書かれていますが、主に業務で使うときにはライブラリを通して使うことが多いのではないでしょうか。
まずは ImageMagick をインストールしましょう
Mac を使っているのなら、 brew でインストールできるはず
brew install imagemagick
ImageMagickを使った画像圧縮の基本コマンド
convert
コマンドを利用します。
convert sample.jpg -quality 90 sample.jpg
90%で設定するだけでも、おおよそ 1/4 くらいにファイルサイズは圧縮されます。
なお画質についてはGoogleのドキュメントに記述があり「85を超えると画像の容量が急増しますが、視覚的な品質はほとんど向上しません」とありますので、用途に合わせて85~90%の品質で利用すると良いと思います。
実際に使うときは、フォルダ内の jpg ファイルを一括変換させたりするので
for file in *.jpg; do
convert "${file}" -quality 90% "${file}"
done
このようにループを使い、一括変換しました。
まとめ
いかがでしたか?思ったよりも簡単に画像変換できませんか?
やったことないと多少抵抗があると思いますが、これ一つできるだけでやり取りの回数も少なくできるかと思います。
画像の容量もサーバー負荷もどんどん減らしていきましょう。
Discussion