WebP一括変換をGoogle公式ツールlibwebpで行う

ツール開発

こんにちは。

この記事では、画像を一括で WebP 形式に変換する方法を紹介します。

変換ツールとしては Google が公式で出している libwebp を使いますが、そのままでは使いにくいため、複数の画像をドラッグ&ドロップするだけで変換できるようにします。

変換ツールのダウンロードと使い方

libwebpのダウンロード手順

まず、以下のページの「downloads repository」から、最新版のファイルをダウンロードします。

libwebp のダウンロード – Google公式

因みに、2021/02/05 現在の Windows 用の最新版は「libwebp-1.2.0-windows-x64.zip」です。

ダウンロードしたら、適当な場所に解凍しておきます。

libwebpの使い方

ここは興味のある方向けなので、読み飛ばしても大丈夫です。

まず、コマンドプロンプトを開いて、解凍したフォルダに移動します。

png, jpg, gif の画像は以下のように webp に変換できます。

bin\cwebp -lossless image0.png -o image0.webp
bin\cwebp image1.jpg -o image1.webp
bin\cwebp image2.gif -o image2.webp

png から webp は可逆圧縮が可能なので、損失なく変換したい場合は上記のようにオプション -lossless を指定します。

また、webp を別形式に変換することもできます。

bin\dwebp image3.webp -o image3.png

webp画像が見られない場合は、以下のように可視化することができます。

bin\vwebp image0.webp

このように変換や可視化ができますが、これをすべての画像に対して手作業で行うのは手間なので、まとめて処理できるようにバッチファイルを作成します。

バッチファイルの作成と使い方

webp_batch_converter.batの保存手順

バッチファイルは複数の処理をまとめて書いておくことができるWindows用のファイルです。
(LinuxやUNIXのシェルスクリプトのようなもの)

選択した複数の画像をまとめて変換する処理を書いたバッチファイルを作成することで、自動での一括変換が可能になります。

今回作成したバッチファイルの保存方法は以下に示す通り、ダウンロードリンクからダウンロードするか、メモ帳などにテキストをコピーして保存します。

ダウンロードリンクから保存

まず、以下のリンクからダウンロードしてください。

webp_batch_converter.bat

次に、ダウンロードしたファイルを右クリックして「プロパティ」を開きます。

表示された画面内の下の方に書かれている「セキュリティ: このファイルは……(略)」の部分にある「許可する」にチェックをつけ、「OK」をクリックします。

テキストで保存

メモ帳を開き、以下のコードをコピーして保存します。

保存するときには、次の2点に注意してください。

  • ファイルの種類は「テキスト文書」ではなく、「すべてのファイル」にしてください。
  • ファイル名は「webp_batch_converter.bat」のように、拡張子を .bat にしてください。
webp_batch_converter.bat
Copy Code
@rem WebP Batch Converter
@rem This file enables batch conversion of images to and from WebP.
@rem Converted images are saved in another directory to avoid mixing.
@rem This file depends on libwebp released by Google.

@echo off



@rem args: file_img0, file_img1, ...

:main
setlocal

set path_libwebp="%~dp0"

for %%i in (%*) do (
call :converter %path_libwebp% %%i
)

endlocal
exit /b



@rem args: path_libwebp, file_img

:converter
if %~x2==.png (
call :png %1 %2
) else if %~x2==.PNG (
call :png %1 %2

) else if %~x2==.jpg (
call :jpg %1 %2
) else if %~x2==.JPG (
call :jpg %1 %2

) else if %~x2==.gif (
call :gif %1 %2
) else if %~x2==.GIF (
call :gif %1 %2

) else if %~x2==.webp (
call :webp %1 %2
) else if %~x2==.WEBP (
call :webp %1 %2
)

exit /b



@rem args: path_libwebp, file_img

:png
call :encodeWebp %1 %2 webp "-lossless"
exit /b

:jpg
call :encodeWebp %1 %2 webp ""
exit /b

:gif
call :encodeWebp %1 %2 webp ""
exit /b

:webp
call :decodeWebp %1 %2 png ""
exit /b



@rem args: path_libwebp, file_img, format, option

:encodeWebp
call :savedInAnotherDir "%~1bin\cwebp" %2 %3 %4
exit /b

:decodeWebp
call :savedInAnotherDir "%~1bin\dwebp" %2 %3 %4
exit /b



@rem args: file_libwebp, file_img, format, option

:savedInAnotherDir
setlocal

set child_dir=%~dp2
set another_dir="%child_dir:~0,-1%_%3"
mkdir %another_dir%

set converted_file="%child_dir:~0,-1%_%3\%~n2.%3"
%1 %~4 %2 -o %converted_file%

endlocal
exit /b

ファイルの保存場所

保存したバッチファイルは、先程解凍した libwebp のフォルダの中に入れてください。
(Readme.txt などが入っている場所です)

フォルダの構造を示しておくと、以下のようになっているはずです。

フォルダ構造
└─libwebp-1.2.0-windows-x64
    │ Readme-mux.txt
    │ Readme.txt
    │ test.webp
    │ test_ref.ppm
    │ webp_batch_converter.bat
    │
    ├─bin
    │
    ├─include
    │
    └─lib

バッチファイルを指定の場所に置きたくない人は、コード内14行目の set path_libwebp= 以降を適宜変更してください。

webp_batch_converter.batの使い方

変換したい画像をすべて選択してバッチファイルにドラッグ&ドロップすると、選択された画像がすべて自動的に変換されます。

元の画像と変換後の画像が混ざらないよう、変換後の画像は別フォルダに保存されます。

変換された webp 画像は「元フォルダ名_webp」フォルダ以下に保存され、png 画像は「元フォルダ名_png」フォルダ以下に保存されます。

例えば、以下のように「sample」フォルダの中に画像が保存されていたとします。

フォルダ構造(変換前)
├─sample
│ image0.png
│ image1.jpg
│ image2.gif
│ image3.webp

これら4つの画像をすべてドラッグ&ドロップすると、以下のように保存されます。

フォルダ構造(変換後)
├─sample
│ image0.png
│ image1.jpg
│ image2.gif
│ image3.webp

├─sample_png
image3.png

├─sample_webp
image0.webp
image1.webp
image2.webp

webp 以外は webp に、webp は png に変換されます。

ショートカットの作成

ここまでの手順では、バッチファイルを使うたびに libwebp のフォルダを開く必要があります。

これが面倒な場合は、ショートカットを利用することで解決できます。

作成手順と使い方は非常にシンプルです。

バッチファイルを右クリックし、「ショートカットの作成」を選択します。

生成されたショートカットは元のファイルと同じ動作をするので、ショートカットに画像をドラッグ&ドロップしても一括変換されます。

ショートカットの便利な点を以下にまとめました。

  • 元ファイルと同じ動作をする
  • ファイル名を自由に変更できる
  • 置く場所を自由に決められる
  • いくつでも作成できる

操作しやすい場所にショートカットを作成しておくと作業効率が上がると思うので、是非活用してみてください。

まとめ

Google 公式の変換ツールを使って、WebP に一括変換する方法を紹介しました。

何か要望等があれば、コメントにてお知らせください。

ツール開発技術系

コメント一覧

タイトルとURLをコピーしました