カテゴリー
Windows

Windows で使える jpegtran 用上書き bat ファイル。

The same article in English
投稿アップデート情報  追記(2016/10/29)

 ご存知, 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 ファイルの使い方:

  1. テキストエディタを使い上記のコードで bat ファイルを作る。名前は, ‘jpegtran.bat’ ナンチャラ。ここから落とした txt ファイルの拡張子を bat に変えて使っても OK 。
  2. 作った bat ファイルを jpegtran.exe と同じフォルダに入れる。
  3. 最適化したい jpeg ファイルを, bat ファイルのアイコンにドラッグ&ドロップする。
  4. 以上

 もしこの bat を利用される場合は,「上書きするので,元ファイルは残らない」ということに留意してください。

 サイトの jpeg ファイルを全部最適化した。おかげさんで, PageSpeed Insights の図に関する小言も消えたし,パチパチ。

参考:
   1. DOS コマンド一覧
   2. Jpegtran のヘルプ

追記(2016/10/29):
 結構需要のある記事なので,使い方の追記を書くことにした(爆)。基本的には, jpeg ファイルを jpegtran.bat 上にドラッグ&ドロップするだけなのだが,以下のような使い方もできる。
 jpegtan.exe と jpegtran.bat の入ったフォルダは PC 内のどこにおいてもよい。ただ,デスクトップに jpegtran.bat のショートカットを作っておくと便利である。ショートカットは bat 自身と同じように使える。
 この bat は,処理したい jpeg の入っている範囲で検索をかけて見つかったものを「すべて選択」してドラッグ&ドロップすれば,一括処理も可能である。