ウェブサイトを作る上での基本「Macの画像圧縮方法」のまとめ

ウェブサイトの表示速度を上げるために、画像圧縮はかなり重要になってきます。
コードのリファクタリングや、キャッシュの設定という手もありますが、知識も労力も必要になりますし、コードのリファクタリングもそこまで大きな成果が望めない場合もあります。
画像の圧縮であれば比較的手軽にできて、効果もかなり見込めます。
今回はウェブサイトの表示速度を改善するために、Macの画像圧縮方法についてまとめておきます。
適切な画像形式か確認する
まずそもそも画像圧縮する前段階の話ですが、適切な画像形式になっているか確認しましょう。
なんでもかんでもPNG形式になっているなら、改めて形式を見直します。
また、最近はWebPという画像形式もあります。
ブラウザ対応状況はまだまだですが、PNGとJPEGのいいとこ取りをしたような画像形式になっていて、アルファチャンネルに対応していながらJPEG並みに容量を小さくできます。
WordPressであれば簡単にWebPへ変換し、対応していないブラウザであればもとの変換前の画像を表示してくれるプラグインもあります。
画像の圧縮方法
画像の圧縮方法は色々ありますが、今回はその中からWeb開発を行う人にとって代表的な下記3つの方法について紹介します。
- アプリを使う
- Webサービスを使う
- タスクランナーを使う
アプリを使う
Macの場合はImageOptimがオススメです。
画像をドラッグアンドドロップするだけですし、対応形式がひと通り網羅されていて、設定も簡単です。
ただし、デフォルトの設定では可逆圧縮(後から元画像に戻せる圧縮方法)になっているため圧縮率が悪いです。ちゃんと設定をする必要があります。
具体的には、環境設定の[Quality]にある「非可逆圧縮を有効にする」にチェックを入れます。

Webサービスを使う

TinyPNGというサイトにアクセスして、ファイルをドラッグアンドドロップすると画像が圧縮されて、圧縮した画像をダウンロードできます。
サイトにアクセスする手間が発生しますが、アプリをインストールする必要がないのでたまにしか画像圧縮を行わないのであれば1番手軽な方法です。
設定不要でドラッグアンドドロップするだけなのもいいですよね。
ただ、頻繁に画像圧縮をする人であれば、毎回サイトを開いてドラッグアンドドロップしてダウンロードは面倒なので、別の方法を用意するようにしましょう。
タスクランナーを使う
タスクランナーのgulpとgulp-imagemin系のプラグインを使えば、画像の圧縮も自動で行えます。
まずはnpm installでプラグインをインストールします。
今回は画像変更時にも自動でタスクが動くようにしたいのでgulp-changedというプラグインも入れておきます。
$ npm install -D gulp-imagemin imagemin-mozjpeg imagemin-pngquant gulp-changedあとは下記の内容をgulpfile.jsに追加すればOKです。
const gulp = require('gulp');
const changed = require('gulp-changed');
const imagemin = require('gulp-imagemin');
const mozjpeg = require("imagemin-mozjpeg");
const pngquant = require("imagemin-pngquant");
gulp.task('minifyImg', function(done) {
gulp.src("./src/*.+(jpg|jpeg|png|gif)") //画像を入れるパスの設定
.pipe(changed(./dest/images))
.pipe(gulp.dest(./dest/images))
.pipe(imagemin(
[
mozjpeg({
quality: 80 //画像の圧縮率
}),
pngquant()
],
{
verbose: true
}
))
});
gulp.task('default', gulp.series('minifyImg'));
gulp.watch(['src/*.*'], gulp.task('minifyImg'));パスの設定や画像の圧縮率は環境に応じて変えて、あとはnpx gulpで動きます。





テキストエディタのAtomをインストールしたら最低限設定しておきたいアレコレ
Hazelがちゃんと動作していない?そう思ったときに確認すること
Karabiner-Elementsでcommand + Qの2回押しでアプリが終了するように変更する方法
Karabiner-Elementsの独自ルールの作成方法
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
AlfredのDefault Resultsを変更して、Google検索をラクにする方法
ImageOptimで画像圧縮に最適な設定を行う
知っていると作業が少しラクになるMacの豆知識 #1日1Tips – 2019年12月
Google Chrome が提供しているベータ版含む4つのバージョンの違いとインストール方法
Macのダイアログを強化するDefault Folder Xの使い方
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
軽量で高速なターミナルエミュレーター「Ghostty」の設定方法
Eagleで実現するクリエイティブ素材の簡単管理
かゆいところに手が届く「Supercharge」でMac環境を便利にカスタマイズする
超軽量なコードエディタ 「Zed」をサブエディタとして活用する
Bartender 6で追加されたWidgets機能で自作メニューバーアイテムを簡単に作成する
Googleカレンダーを便利に活用するための小技集(祝日だけを表示・月末の繰り返しイベントを追加)
Obsidianを使った「自己流PKM」で行う知識トレーニング
テキストエディタ・ノートアプリ関連のショートカットキーをKeyboard Maestroで統一する
Path Finderを使ってキーボードだけでファイル操作する方法(応用編)