ご存知, jpegtran , UNIX/LINUX 系ではどうか知らないが, Windows で使うとすごーく不便。元フォルダに上書きしてくれる bat ファイルを,自分用に作ってみた。
@echo off
setlocal enabledelayedexpansion
pushd %~dp0
for %%a in (%*) do (
set OutFile=%%~na%%~xa
jpegtran -copy none -optimize -outfile !OutFile! %%a
for %%b in (!OutFile!) do set fileSize=%%~zb
if !fileSize! LSS %%~za (copy !OutFile! %%a>nul)
del !OutFile!
)
popd
exit
この bat は,基本的には,作られたファイルで元ファイルを上書きする。ただ,ときどき元ファイルよりサイズが大きくなる場合があるので,その場合は元ファイルを残す。 1 遍に処理できるファイル数は高々 100 程度。その辺は, cmd.exe の文字数制限のせいのような気がする。
bat ファイルの使い方:
- テキストエディタを使い上記のコードで bat ファイルを作る。名前は, ‘jpegtran.bat’ ナンチャラ。ここから落とした txt ファイルの拡張子を bat に変えて使っても OK 。
- 作った bat ファイルを jpegtran.exe と同じフォルダに入れる。
- 最適化したい jpeg ファイルを, bat ファイルのアイコンにドラッグ&ドロップする。
- 以上
もしこの bat を利用される場合は,「上書きするので,元ファイルは残らない」ということに留意してください。
サイトの jpeg ファイルを全部最適化した。おかげさんで, PageSpeed Insights の図に関する小言も消えたし,パチパチ。
参考:
1. DOS コマンド一覧
2. Jpegtran のヘルプ
追記(2016/10/29):
結構需要のある記事なので,使い方の追記を書くことにした(爆)。基本的には, jpeg ファイルを jpegtran.bat 上にドラッグ&ドロップするだけなのだが,以下のような使い方もできる。
jpegtan.exe と jpegtran.bat の入ったフォルダは PC 内のどこにおいてもよい。ただ,デスクトップに jpegtran.bat のショートカットを作っておくと便利である。ショートカットは bat 自身と同じように使える。
この bat は,処理したい jpeg の入っている範囲で検索をかけて見つかったものを「すべて選択」してドラッグ&ドロップすれば,一括処理も可能である。