You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在discord.js中通过URL获取图片的尺寸

Node.js 环境下获取远程图片尺寸的解决方案

无第三方库实现方案

  • 结论是可以实现,但开发成本较高,需要手动解析不同图片格式的二进制文件头
  • 实现思路:
    1. 使用Node.js内置的http/https模块发送带Range请求头的HTTP请求,仅拉取图片前1-2KB的内容即可,常用图片格式的宽高信息都存储在文件头的前几百字节中,无需下载完整图片
    2. 读取返回的Buffer,先通过魔数判断图片格式,比如PNG的魔数是89 50 4E 47、JPG是FF D8 FF
    3. 根据对应格式的官方规范,从Buffer的指定偏移位置读取宽度、高度的字节数据,转换为数值即可
  • 注意事项:需要自行兼容所有需要支持的图片格式,还要处理HTTP重定向、服务端不支持Range请求、资源非合法图片等异常场景,仅适合有高度自定义需求的场景使用。

推荐第三方库

如果不想自行处理复杂的兼容逻辑,优先选择专门的轻量库:

  • 首选image-size:这是专门用于读取图片尺寸的轻量库,支持几乎所有常用图片格式,支持读取本地文件、Buffer、远程URL资源,无需下载完整图片即可拿到尺寸,完全适配discord.js的开发场景。
    基础使用示例:
    const sizeOf = require('image-size');
    // 读取远程图片尺寸
    sizeOf('https://example.com/test.png', (err, dimensions) => {
      if (err) throw err;
      console.log(dimensions.width, dimensions.height);
    });
    
  • 如果项目本身已经在使用sharp做图片处理,也可以直接用sharp读取尺寸,不需要额外引入其他依赖。

内容的提问来源于stack exchange,提问作者Apollo24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:06