google chrome

なぜGoogle ChromeはJPG画像をWEBPに保存するのですか?

ChromeからJPG画像と思われるものを保存しようとすると、いつも代わりにWEBP画像をダウンロードしてしまうのですが、どうしたらいいでしょうか?

macOS Catalina (10.15.4) で Chrome バージョン 80.0.3987.163 を使用しており、Web サイトからJPG 画像をダウンロードしようとしています。画像の URL には明らかに .jpg 拡張子が付いていますが、CMD + S を押すか、画像を右クリックして [名前を付けて Save image as... ] を選択すると、保存するためのファイル システム ダイアログが表示され、形式のドロップダウンが次のように設定されます。こちらに示す Google's WEBP

私の推測では、実際にはWEBPである画像にJPGの拡張子を使用しているのだと思いますが、かなり誤解を招きそうです。そんなことがあり得るのでしょうか?JPGとして画像をダウンロードする方法はあるのでしょうか?

ファイル拡張子は、HTTP にはまったく関係ありません。サーバーが Content-Type: image/webp を示している場合、それは WebP 画像です。(ほとんどの Web サイトが、HTML ベースの Web ページを提供しているにもかかわらず、URL に .html を使用しなくなったのと比較してください。)

Web サイトにアップロードされた元の画像は JPEG ファイルでした。ただし、「コンテンツ配信ネットワーク」(この場合は Akamai)を通じて提供されます。CDN の仕事は、これらのファイルをホストし、Web サイトの実サーバーの負荷を軽減することですが、多くの CDN は、クライアントの帯域幅を節約するためのさまざまな最適化機能も提供しています。これには、多くの場合、画像の再圧縮、JS/CSS ファイルの縮小などが含まれます。

Akamai は HTTP リクエストのUser-Agentヘッダーを調べて、ブラウザーがサポートする最適な形式を推測し (奇妙なことに、Acceptヘッダーは無視します)、必要に応じて画像を WebP に自動的に変換します。URL は同じままですが、応答のContent-Typeヘッダーは新しい形式を示します。

「ユーザー エージェント スプーファー」拡張機能をインストールするか、別のブラウザーを試す以外に、URL をコピーし、ターミナルから curl または wget ツールを使用してダウンロードすることもできます (macOS には、少なくとも 1 つのツールが組み込まれている必要があります)。CDN は通常、「ブラウザ以外の」ツールを webpification 機能から除外します。

curl -Of https://mosaic03.ztat.net/vgs/media/catalog-lg/NI/12/2O/0H/NQ/12/NI122O0HN-Q12.jpg



CDNデータトラフィック削減

WebPは、On2 Technologies の買収により取得した技術に基づいて、Google が現在開発している画像形式です。

HTTP(S) リクエスト ヘッダー User-Agent フィールドで、最近使用したブラウザを使用していることが判明した場合、コンテンツ配信ネットワーク (CDN)サーバーは、データ トラフィックを削減するために、この新しい WebP 形式で元の .jpg または .png 画像を提供する場合があります。それにもかかわらず、これらの提供された画像ファイルは元のファイル拡張子を保持します。本当に誤解を招き、欺くことは何ですか。

wget または curl コマンドを使用して元のイメージ ファイルをダウンロードすることが 1 つの解決策です。

いくつかの Google Chrome 拡張機能は、WebP として提供される画像を別の画像形式で保存する方法を提供します。ただし、オープンソースソフトウェアである拡張機能は 1 つだけです。これはSave image as Typeです。

ただし、これと他のすべての同様の拡張機能には、厄介な欠点が 1 つあります。保存の合間に、これらの拡張機能は、前の画像が保存されたディレクトリを呼び出しません。これは、拡張機能に関する Google のサンドボックス ポリシーが原因である場合とそうでない場合があります。とにかく、私はそれについてGitHub の問題を開きました。