【问题标题】:Using HTML code to detect image size on screen使用 HTML 代码检测屏幕上的图像大小
【发布时间】:2019-01-10 23:06:34
【问题描述】:

我正在开发一个应用程序,它可以从网页中获取 HTML 并查看 HTML 中的图像,这些图像可以被压缩和调整大小。

我可以在节点中完成第一部分没有问题,在这里使用 Sharp:

https://www.npmjs.com/package/sharp

当然,我也可以在这里调整同一张图片的大小。我只是不知道要使用什么尺寸。我不希望一个小图像放大等等。

我可以使用我开始使用的 HTML 以某种方式检测屏幕上图像的大小吗?

提前致谢。

编辑:

如有任何混淆,我们深表歉意。我需要知道页面上显示的图像有多大。因此,图像可能是 400x400,但 css 可能会将其限制为 200x200。

如果我有一张大图片 (1000x1000),但它只在 500x500 的屏幕上显示,我知道它是调整大小的理想选择。

我只是不确定如何根据它的 css 尺寸调整大小。

【问题讨论】:

标签: node.js image-compression sharp


【解决方案1】:

我认为在 Sharp 中有一个 metadata 函数可以让您访问图像元数据,例如格式、宽度、高度等

例子:

const image = sharp(inputJpg);

image.metadata().then(function(metadata) {
    // print image width and height
    console.log({
        width: metadata.width,
        height: metadata.height
    });
});

【讨论】:

  • 感谢您的帮助。您是否知道任何对我上面的编辑有帮助的东西?很抱歉有任何混淆。
  • 感谢您的澄清。您想从实际的实时网页中获取渲染后的图像尺寸,还是从您抓取的 HTML 源代码中获取?
  • 如果您从实际的实时网页中执行此操作会容易得多,因为您可以在图像元素上使用img.clientWidthimg.clientHeight 来检测其渲染尺寸(see here)。从源代码中执行此操作可能会更困难,因为某些图像可能具有动态尺寸 - 例如,如果有人使用width: 50%,则图像大小会根据浏览器窗口大小而变化。
  • 谢谢,贺拉斯。有道理。
【解决方案2】:

在夏普库中,

您可以从此文档中获取维度: http://sharp.dimens.io/en/stable/search.html?q=dimension

希望对你有所帮助。

const sharpImage = sharp('test/test.jpg');
image.metadata().then(function(metadata) {
    console.log(metadata);
});

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
  • 编辑了我的答案@eisbehr
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 2021-04-16
  • 2011-04-07
  • 1970-01-01
  • 2015-06-12
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多