Node.jsでwebpフォーマット画像に変換できない→変換できた!

Share on:

この記事は約2 分で読めます。

目次

Node.jsのプログラムでjpgやpngやgif画像をwebp画像に変換できない!

そんなwebpに関するお悩みを解決する記事です。

webpはサイトの高速化に貢献する画像フォーマット。

このブログの画像もすべてwebpフォーマットで配信しています。
(ブラウザがwebpに対応していない方申し訳ありません。)

そんなwebpですが、Node.jsアプリを作っていて、jpgやpngやgif画像をwebpに変換する必要があり、どうやったらプログラムで変換できるのか?結構ハマりました。

ということで忘れないうちに書いておきます。

webp-converterモジュール

Node.jsによるwebp変換自体のコードはググればすぐに答えが見つかります。

それはwebp-converterモジュールを使う方法です。

使い方もいたって簡単。

1$ npm install webp-converter --save
 1var express = require('express');
 2var router = express.Router();
 3
 4var webp = require('webp-converter');
 5
 6/* GET users listing. */
 7router.get('/', function(req, res, next) {
 8
 9  webp.cwebp("input.jpg","output.webp","-q 80",function(status,error){
10    //if conversion successful status will be '100'
11    //if conversion fails status will be '101'
12    console.log(status,error);    
13  });
14
15  res.send('done');
16});
17
18module.exports = router;

このソースで、input.jpgoutput.webpに変換されると公式ページにも書いてあります。

しかし、いざ動かしてみるとwebp画像が生成されない・・・

数日悩みました。ググりにググりました。そして数日後・・・

webp-converterモジュールを機能させる

もう手動でチマチマwebpに変換するか~と思った矢先、サーバーにライブラリを入れることで、jpgやpngをwebpに変換することができました。

解決方法はここに書いてありました(中国語)

1# yum install -y libXext.x86_64
2# yum install -y libXrender.x86_64
3# yum install -y libXtst.x86_64

自分の場合、1番目と2番目は入っていたので、3番目をインストールし、上記のプログラムを動かしたら、見事、webpに変換できました。

よかった~!!!!!

webp-converterモジュールはオプションも豊富なのでしっかりおさえておきたいと思います。

早くwebpがスタンダードな時代になりますように。