SafairでWebP書き出せない

こちらのページの画像をWebPに変換する機能を作っていて、そろそろ形になってきたかなと思ってSafariで確認してみたら、WebPを指定してるのにPNGになって書き出されてしまう現象に遭遇。

書き出し方はざっくりとこんな感じです。

const blob = await offscreenCanvas.convertToBlob({type:"image/webp", quality:1});

typeを”image/webp”にしてるのに、SafariだとPNGになってしまう。Chromeだと問題ないです。

で、AIになんでやと聞いてみたら、WebPはGoogleが開発・推進するフォーマットだからAppleが慎重な姿勢を取っているとか、Apple的にはHEIF/HEICを推したがっているとかがあるみたいで、本当かどうかはわかりませんが、バグではなくただ未対応なだけみたいです。

SafariもWebPの表示は対応してるけど、WebPのエンコードは未対応ということなんですね。

というわけでSafariというか、上記の方法でWebPが作れない場合は、@jsquash/webpを使用するようにしました。

ただjsquashだからなのかSafariだからなのかわかりませんが、ちょっと処理が重いような気がしたり、Chromeより画質が悪いような気がするんですよね。

しかし私の力量では対処のしようもないので、Safariの対応を気長に待ちつつ、それまではこのまま我慢しておくことにします。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です