如何强制将 .png 或 .jpg 图像下载为 png 或 jpg,而不是 webp?(任何浏览器,不仅仅是 chrome)

如何强制将 .png 或 .jpg 图像下载为 png 或 jpg,而不是 webp?(任何浏览器,不仅仅是 chrome)

当我有 jpg 或 png 图像的图像 URL 时,例如:

https://static.coingecko.com/s/coingecko-logo-d13d6bcceddbb003f146b33c2f7e8193d72b93bb343d38e392897c3df3e78bdd.png

当我访问此链接时,它会显示图像。当我右键单击图像并选择“将图像另存为...”时,出于某种原因,它坚持将其另存为 .webp (Google WebP) 图像。

这不仅仅是重命名扩展的问题,它下载并保存的文件实际上是一个webp图像。

无论我做什么,我似乎都无法让我的浏览器以我正在访问的本机格式保存它,即 png 或 jpg(在此示例中为 png)。

这在任何浏览器中都会发生:Chrome、Firefox、Brave、Chromium 等等。

请注意,当我curl <theurl>从终端执行此操作时,我获取正确的图像文件。

当我构建自定义脚本来检查 HTTP 标头时,它具有正确的 mimetype(image/jpeg 或 image/png)。这让我想到,显然,完整的浏览器(而不仅仅是某些 curl 脚本)会发送一些Accept标头或其他内容,这会导致特定的 Web 服务器输出 webp 图像而不是 png 或 jpg,无论 URI 是否明确请求 png 或 jpg。

我确信这种行为有合理的原因,但我并不想这样。有办法解决这个问题吗?

答案1

你需要切换浏览器的用户代理设置。如果 Web 服务器识别出不支持 webp 的旧浏览器,它应该会为您提供 png。

答案2

这实际上不是 Web 浏览器的问题,而是 Web 服务器的问题。当浏览器表示它可以处理 WebP 图像时,一些(确切地说是许多)服务器会发送 WebP 图像,即使 URL 表明它是 jpg 或 png 图像。然后浏览器显示并保存它所获取的内容:WebP 图像。

解决这个问题的简单方法是:复制图像网址(许多浏览器在右键单击弹出菜单中都有这样的项目),然后使用 wget 或 curl 等程序下载图像:

wget http://huppeldepup.png

相关内容