javascript - 下载大图像的小版本 - 客户端 - 没有后端功能 - javascript
问题描述
是否可以下载不同大小的图像?
例如我有 3000*3000 像素的图片: https ://via.placeholder.com/3000x3000
所以当我的 javascript 代码在 Android 中运行时,我们只需要一个 1000*1000 的图像。我知道下载后可以调整此图像的大小(例如使用画布)。
但是是否可以在不运行后端代码的情况下下载此图像的小版本?只是客户端。
解决方案
研究srcset属性——它用于提供不同的图像来源。srcset 属性指定要在不同情况下使用的图像的 URL。
So, with these attributes in place, the browser will:
Look at its device width.
Work out which media condition in the sizes list is the first one to be true.
Look at the slot size given to that media query.
Load the image referenced in the srcset list that most closely matches the slot size.
以下来自https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
...
<img srcset="elva-fairy-320w.jpg 320w,
elva-fairy-480w.jpg 480w,
elva-fairy-800w.jpg 800w"
sizes="(max-width: 320px) 280px,
(max-width: 480px) 440px,
800px"
src="elva-fairy-800w.jpg" alt="Elva dressed as a fairy">
...
然而,我们可以使用两个新属性——srcset 和sizes——来提供几个额外的源图像以及帮助浏览器选择正确图像的提示。您可以在 Github 上的 responsive.html 示例中看到一个示例(另请参见源代码):
srcset 和 sizes 属性看起来很复杂,但是如果您按照上面所示的方式对它们进行格式化,并且每行具有不同的属性值部分,那么理解它们并没有那么糟糕。每个值都包含一个逗号分隔的列表,列表的每个部分由三个子部分组成。现在让我们来看看每个的内容:
srcset 定义了我们将允许浏览器选择的图像集,以及每个图像的大小。在每个逗号之前,我们写:
图像文件名 (elva-fairy-480w.jpg.) 一个空格。图像的固有宽度(480w)——请注意,这使用 w 单位,而不是您可能期望的 px。这是图像的实际大小,可以通过检查计算机上的图像文件找到(例如,在 Mac 上,您可以在 Finder 中选择图像,然后按 Cmd + I 调出信息屏幕。)大小定义了一组媒体条件(例如屏幕宽度),并指示在某些媒体条件为真时最好选择哪种图像尺寸——这些是我们之前讨论过的提示。在这种情况下,在每个逗号之前我们写
媒体条件 ((max-width:480px)) — 您将在 CSS 主题中了解有关这些的更多信息,但现在我们只说媒体条件描述了屏幕可能处于的状态。在这种情况下,我们说的是“当视口宽度为 480 像素或更少时”。空间。当媒体条件为真时图像将填充的槽的宽度(440px。)
推荐阅读
- python - 在 python 中遇到 SSL 证书错误
- c - Does my program need to be able to handle SIGINT?
- debugging - 如何从 ghidra 的相应指令中破解 x64dbg?
- html - 如何摆脱菜单栏和侧面导航之间的空间?
- git - Bitbucket 管道 - 使用 SSH 密钥拉/推代码而没有权限被拒绝
- python-3.x - loop.run_in_executor 函数是否需要 asyncio.lock() 或 threading.Lock()?
- sql - Discord.py 和 SQL:并非所有成员都被添加到数据库中
- html - 如何使用 HTML、CSS、JS 为我的网站制作登录/注册代码
- wordpress - 显示未知 css 文件的 Pagespeed 见解
- c# - 选项
并且配置控制器总是为需要绑定到强类型类的 json 文件返回 null