MozJPEGで更新日時を維持
MozJPEG処理後は更新日時が現在日時になります。そこでFTimeを利用してMozJPEG実行後に更新日時の戻し処理を行います。
準備と実行
準備はMozJPEGが入ったフォルダにファイルをいくつか移動させます。
- githubからMozJPEGをダウンロードして解凍し、sharedフォルダ内のReleaseフォルダを確保
- vectorからFTimeをダウンロードして解凍し、FTime.exeをReleaseフォルダに移動
- バッチまとめを解凍して必要なバッチファイルをReleaseフォルダに移動
FTimeが実行できない場合、FTimeの付属テキストを参考にdllのコピーやランタイムを導入してください。バッチの数字は品質で数字が大きいほど高画質容量大、bはベースライン、pはプログレッシブです。
MozJPEGの実行
画像を入れたフォルダをバッチファイルに放り込めば処理が始まります。
- MozJPEGで処理をする画像(bmp/jpg/png)を1つのフォルダにまとめる
- 画像を入れたフォルダをドラッグして処理をしたい品質のバッチにドロップ
- コマンドプロンプトが表示されて処理が始まり、終了したら自動で閉じる
- 画像フォルダ内に作成された出力用フォルダに処理済みファイルが生成される
MozJPEGで作成したベースラインのjpgファイルにcarmineを1~3回実行すると、サイズがわずかに小さくなることがあります。フォルダでなくファイルをバッチにドロップしたり、処理後に出力用フォルダが残った状態で同じバッチを実行すると、変換処理は行いません。
処理時間
ベースラインとプログレッシブの画像が表示されるまでにかかる時間
小画像の一例 | 大画像の一例 | |||
---|---|---|---|---|
サイズ | 表示時間 | サイズ | 表示時間 | |
ベースライン | 54.06KB | 3ms | 4.14MB | 184ms |
プログレッシブ | 52.90KB | 5ms | 3.99MB | 475ms |
小さな画像だと誤差ですが、大きい画像だと表示時間に差が出てきます。
powershellを使った場合
FTimeの代わりにpowershell -Commandからの操作で時刻の変更もできます。250ファイル合計4MBに対して、10秒で終わる処理が11分かかりました。同条件でFTime利用だと40秒強でした。