🖼️

画像圧縮くらいエンジニアでやってしまおう

2024/08/19に公開

はじめに

ラブグラフエンジニアの熊谷です。
タスクを始めたとき画像の圧縮が足りずに、必要以上のファイルサイズになっているときありますよね?
その際、デザイナーさんに再生成を依頼して(ときには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