ダウンロードしたWebPが開けないとき:JPG・PNGに変えると何が変わる?

作成 · 更新 · 運営者(個人)

Webから保存した画像が.webpで終わっていて、いつものアプリで開けなかったり、アップロード欄で受け付けてもらえなかったりしませんか。ミルキットの形式変換で、写真はJPGに、透明な背景がある画像はPNGにすれば、たいてい解決します。自作のWebPを2つ変換して、容量と画質がどう変わるかを確かめました。

なぜWebPだけ断られるのでしょう?

WebPはWebページを軽くするためによく使われる形式なので、ブラウザーで画像を保存するとWebPになることがよくあります。ところが、古い写真編集アプリや一部のプリント注文サイト、書類の提出欄には、JPG・PNGしか受け付けない所があります。ファイルが壊れているのではなく、受け取る側の許可リストにWebPがないのです。

このとき、拡張子だけを.jpgに書き換えてはいけません。名前が変わるだけで中身はWebPのままなので、中身を確かめる相手には再び断られたり、壊れた画像として表示されたりします。形式そのものを変えて保存する必要があります。

写真のWebPを変換した結果

草むらと小さな看板の文字がある2400×1600の写真を、別のプログラム(libvips)で画質80のWebPにしました。374.1KBです。このファイルをミルキットの形式変換と同じ処理に通し、保存形式だけを変えました。

JPG 85%は374.8KBで元のWebPとほぼ同じ容量、元のWebPと比べたPSNRは36.9dBでした。JPG 92%は703.0KBで38.7dB、JPG 95%は981.1KBで40.3dBです。PNGは元のWebPとピクセルが100%同じでしたが、4.29MBと約12倍になりました。

覚えておきたいのは、WebPで保存されたときに失われた細部は、どの形式に変えても戻らないということです。PNGは今の見た目をそのまま固定するだけで、JPGはその上に少し圧縮を加えます。下の比較画像では、4つの結果どれも看板の文字を問題なく読めました。

透明なステッカーはPNGに

半透明の影がある800×800のステッカーWebP(29.3KB)も変換しました。完全に透明なピクセルが266,263個、半透明の影のピクセルが92,113個ある画像です。

PNGで保存すると93.6KBになり、透明なピクセルの数も色も元のWebPと1つも違いませんでした。JPG 85%は19.5KBと小さくなりましたが、透明なピクセルは0個になりました。JPGには透明を入れる場所がないため、ミルキットは空いた所を白で塗ります。白い背景に置くなら問題ありませんが、色のある背景に重ねるロゴやステッカーならPNGを選んでください。

ミルキットで変換する手順

  1. 形式変換を開き、ダウンロードしたWebPを追加します。複数枚まとめて入れても大丈夫です。
  2. 保存形式で、写真ならJPG、透明な背景がある画像ならPNGを選びます。
  3. 容量の調整を「画質で調整」のままにすると、画質85%で保存されます。今回の試験で元のWebPとほぼ同じ容量になった値です。
  4. プレビューで比較を押して元の画像と結果を確かめ、保存 ↓を押します。

送り先に容量の上限があるなら、容量の調整を「容量で調整」に変え、「目標以下に合わせる」にその数字を入れてください。上限の中で一番高い画質をミルキットが探します。

画質の数字はいくつにする?

今回の写真では、85%で元のWebPと同じ容量になりました。ダウンロードしたWebP自体がすでに圧縮されたファイルなので、95%に上げても容量が2.6倍になるだけで、WebPになかった細部が生まれるわけではありません。印刷のようにもう一度編集する予定がなければ、85%程度で十分でした。

逆に、何度も直して保存する画像なら、先にPNGに変えてから作業するのがおすすめです。JPGで保存するたびに圧縮が少しずつ重なるからです。最後に送るときに一度だけJPGで保存しましょう。

変換したファイルは本当にJPG?

保存した結果を別のプログラム(libvips)で開き直し、中身の形式を確かめました。JPGで保存したファイルはすべてJPEG、PNGで保存したファイルはPNGとして読まれ、縦横も2400×1600のままでした。名前だけを変えたファイルと違い、中身を検査されても通る本物のJPG・PNGです。

送り先がWebPを受け付けるなら、無理に変える必要はありません。今回の写真のように、同じ容量のJPGは画質を少し多く失うことがよくあるので、変換は断られたときだけで十分です。

動くWebPは?

3コマの動くWebPも入れてみましたが、ミルキットは「アニメーションWebPにはまだ対応していません。」と表示して開きませんでした。対応形式の表でも、アニメーションWebPは非対応と書かれています。最初の1コマだけを黙って変換し、動きを失うのを防ぐための動作です。

関連するツールを開く

MiruKitで実際に確認した結果

ファイル・保存形式容量元のWebPとの差透明
写真のWebP(ダウンロード)374.1 KB——
→ JPG 85%374.8 KBPSNR 36.9 dB—
→ JPG 92%703.0 KBPSNR 38.7 dB—
→ JPG 95%981.1 KBPSNR 40.3 dB—
→ PNG4.29 MB100%同じピクセル—
ステッカーのWebP(ダウンロード)29.3 KB—完全に透明 266,263px · 半透明 92,113px
→ PNG93.6 KB100%同じピクセルそのまま維持
→ JPG 85%19.5 KB—0px(白で塗る)

libvipsで作った2400×1600の写真WebP(画質80)と、半透明の影がある800×800のステッカーWebPを、公開中のprocessImageでJPG・PNGに変えました。PSNRは元のWebPを開いたピクセルと比べたRGB値です。3コマの動くWebPも試しました。

元のWebPと変換したファイルを同じ場所で切り出して並べました。市松模様が見える所が透明です。
元のWebPと変換したファイルを同じ場所で切り出して並べました。市松模様が見える所が透明です。
現在のツールで記事の設定を実際に適用した画面です。
現在のツールで記事の設定を実際に適用した画面です。

実測の元データを見る

知っておきたいこと

上の数字は自作の試験画像2枚の結果です。手元のWebPの画質や内容によって、変換後の容量は変わります。

形式を変えても、WebPで保存されたときに失われた細部は戻りません。元のファイルがあるなら、そこから直接JPGを作るほうがきれいです。

ミルキットは初期設定で、撮影日時・カメラ・位置情報を削除して保存します。残したいときは、追加設定で「元の画像からコピー」を選んでください。