JP Coders

Published on

WebPファイルをjpg/pngファイルに変換するには

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

(参考)

imagemagick - convert webp to jpg error: "no decode delegate for this image format" and "missing an image filename" - Unix & Linux Stack Exchange

フォルダの全ての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
Authors
  • avatar
  • Name
  • 情報技術者 / Z世代プログラマー / 米大学院にてデータサイエンスを学ぶ

  • ITプロフェッショナルとして活動しています。React.js等のモダンなウェブ制作・アプリ開発を得意としており、Java・Python・Rust等のプログラミング言語を用いたソフトウェア開発全般を行っています。

お手伝いできますか? 🤝

他の方法でのご連絡をご希望ですか?
web制作ご依頼受付中

本記事で掲載している情報やコードは執筆時点のものであり、動作を保証するものではありません。 自己責任のもと、プログラムの実行や情報の利用にあたってはご注意ください。


本記事には提携する企業の広告が含まれる場合があります。