webpファイルはモダンなウェブ技術の一つで、Googleが近年開発したコンパクトで容量を抑えた、ウェブサービスに優しいファイルフォーマットであるとされています。
サイト管理者からすれば便利かもしれませんが、一般的にはまだまだ対応が完全ではありません。例えばあるサイトにアップロードできるサイトはjpg/pngフォーマットのみであり、webpフォーマットをそのままアップロードすることはできない、といったことです。
webpファイルをjpg/pngファイルに変換するには、以下の2つの方法があります。
ffmpegで変換
ffmpegはだいたいどんな人でもインストールされてると思います。
以下のようにwebpファイルをjpgファイルへ変換します。
ffmpeg -i file.webp out.jpg
インストールがまだの場合はインストールしましょう
sudo apt update ; sudo apt install ffmpeg -y
WSL環境やLinux環境がなくWindows上にインストールしたい場合はchocoを使うといいですね
chocolateyのインストールと使い方については他の記事にて紹介しています。当ブログの検索機能を利用してください。
choco install ffmpeg
dwebpで変換
webpパッケージに入っているdwebpコマンドを利用してwebp変換をする方法です。
webpをインストール
sudo apt update ; sudo apt install webp -y
以下のように使用して変換をしましょう
dwebp file.webp -o abc.png
余談ですが”dwebp”の”d”は”decompress”です。
なお、ffmpegでの変換はjpgファイルには良いけど、pngには出力ファイルが大きくなるという不具合があるようです。png変換の場合にはdwebpを使うほうが良いでしょう。
It is good for jpg image, but png format is very large
(参考)
フォルダの全てのwebpファイルをjpgに変換する
以下、応用の使用例です。
以下スクリプトで、フォルダの全てのwebpファイルをjpgに変換しましょう。
for i in *.webp; do ffmpeg -y -i "$i" "$(basename "${i%.*}").jpg"; done;
フォルダにwebpファイルが追加されたら即時jpgに変換する
応用の使用例です。
シンプルな、フォルダにwebpファイルが追加されたら即時jpgに変換してwebpファイルを削除する、というスクリプトを書きました。便利なので使ってどうぞ。
以下スクリプトをtmp.shに保存します
for i in *.webp; do ffmpeg -y -i "$i" "$(basename "${i%.*}").jpg"; done; rm *.webp
nodemonを使いフォルダに変更があった場合にそれを検知し、tmp.shのスクリプトを適時実行します
nodemon -e webp --exec ./tmp.sh
nodemonのインストールがまだの場合はインストールしましょう
nvmを使用してのnode.jsおよびnpmのインストールについては他の記事にて紹介しています。当ブログの検索機能を利用してください。
npm i -g nodemon