# ウェブサイトを作る上での基本「Macの画像圧縮方法」のまとめ URL: https://webrandum.net/mac-image-compression/ 公開日: 2020-03-03 更新日: 2020-04-05 カテゴリー: 作業効率化 タグ: gulp, ImageOptim 出典: Webrandum(著者: サイトウ マサカズ) ウェブサイトの表示速度を上げるために、画像圧縮はかなり重要になってきます。 コードのリファクタリングや、キャッシュの設定という手もありますが、知識も労力も必要になりますし、コードのリファクタリングもそこまで大きな成果が望めない場合もあります。 画像の圧縮であれば比較的手軽にできて、効果もかなり見込めます。 今回はウェブサイトの表示速度を改善するために、Macの画像圧縮方法についてまとめておきます。 ## 適切な画像形式か確認する まずそもそも画像圧縮する前段階の話ですが、適切な画像形式になっているか確認しましょう。 なんでもかんでもPNG形式になっているなら、改めて形式を見直します。 また、最近はWebPという画像形式もあります。 ブラウザ対応状況はまだまだですが、PNGとJPEGのいいとこ取りをしたような画像形式になっていて、アルファチャンネルに対応していながらJPEG並みに容量を小さくできます。 WordPressであれば簡単にWebPへ変換し、対応していないブラウザであればもとの変換前の画像を表示してくれるプラグインもあります。 [![](https://www.google.com/s2/favicons?domain=webrandum.net)Webrandum![](//webrandum.net/mskz/wp-content/uploads/2019/06/eyecatch-12.jpg)「EWWW Image Optimizer」を使ってWordPressをWebPに対応する方法https://webrandum.net/wordpress-webpWebP(ウェッピー)はGoogleが開発した画像形式で、簡単に説明すると「JPEGのように軽く、PNGのようにアルファチャンネル(透過)に対応した画像」です。JPEGとPNGのいいとこ取りをしたような画像形式なのですが、対応ブラウザがまだまだ少ないのが問題です。また、WordPressではそもそもWebP形式の画像をアップロードできません。というわけで今回は、WordPressプラグインの「EWWW Image Optimizer」を使って、既にアップロードしている画像をWebPに変換して、WebPに対応しているブラウザにのみ表示させる方法をまとめておきます。EWWW ...](https://webrandum.net/wordpress-webp) ## 画像の圧縮方法 画像の圧縮方法は色々ありますが、今回はその中からWeb開発を行う人にとって代表的な下記3つの方法について紹介します。 - アプリを使う - Webサービスを使う - タスクランナーを使う ### アプリを使う Macの場合は[ImageOptim](https://imageoptim.com/mac)がオススメです。 画像をドラッグアンドドロップするだけですし、対応形式がひと通り網羅されていて、設定も簡単です。 [![](https://www.google.com/s2/favicons?domain=imageoptim.com)ImageOptim![](//webrandum.net/mskz/wp-content/uploads/pz-linkcard/cache/1b77a025d0a208ae0b2d050c38fb0905ba223b2fcdd3c4ee7dd1e402d7928caf.webp)ImageOptim — better Save for Webhttps://imageoptim.com/macA free app that makes images load faster and take less disk space, without sacrificing quality. Removes private EXIF data from photos and improves compression.](https://imageoptim.com/mac) ただし、デフォルトの設定では可逆圧縮(後から元画像に戻せる圧縮方法)になっているため圧縮率が悪いです。ちゃんと設定をする必要があります。 具体的には、環境設定の[Quality]にある「非可逆圧縮を有効にする」にチェックを入れます。 ![ImageOptimの「非可逆圧縮を有効にする」](https://webrandum.net/mskz/wp-content/uploads/2020/03/image_1.png) ### Webサービスを使う ![TinyPNG](https://webrandum.net/mskz/wp-content/uploads/2020/03/image_2-1024x569.png) [TinyPNG](https://tinypng.com/)というサイトにアクセスして、ファイルをドラッグアンドドロップすると画像が圧縮されて、圧縮した画像をダウンロードできます。 [![](https://www.google.com/s2/favicons?domain=tinypng.com)tinypng.com![](https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftinypng.com?w=160)TinyPNG – Compress PNG images while preserving transparencyhttps://tinypng.comMake your website faster and save bandwidth. TinyPNG optimizes your PNG images by 50-80% while preserving full transparency!](https://tinypng.com) サイトにアクセスする手間が発生しますが、アプリをインストールする必要がないのでたまにしか画像圧縮を行わないのであれば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`で動きます。