如何获取以 Uint8Array 表示的图像的大小?

2024-03-06

我有一个用户头像图片的字节数组。它表示为键入的Unit8Array()

const imageBytes = new Unit8Array(...);

现在我需要检查图像大小以设置一些限制以防止用户放置大量图像,但我无法想出如何计算图像大小的想法。

我该如何编写这个函数?我需要获取以 MB 为单位的图像大小

const getImageSizeInMB = unit8Array => { ... };

您已经说过数组包含图像数据,因此您已经知道图像数据的大小:它是数组的大小。既然它是一个Uint8Array, its length告诉您它包含多少个 8 位字节。要获得以兆字节为单位的大小,请将该数字除以 1024² (1,048,576) 或 1000² (1,000,000),具体取决于您的意思megabyte https://en.wikipedia.org/wiki/Megabyte在许多人经常使用它的意义上(1024²),或者在技术上更准确的每 SI 术语中(其中“兆”具体表示一百万 [1000²])。 (如果使用“兆字节”表示“一百万”,则 1024² 的术语是“mebibyte https://en.wikipedia.org/wiki/Binary_prefix.")

const sizeInMB = uint8Array.length / 1_048_576;
// or
const sizeInMB = uint8Array.length / 1_000_000;

如果数据位于Uint16Array or Uint32Array或其他包含大于 8 位字节的元素的数组类型,您可以使用byteLength财产:

const sizeInMB = theArray.byteLength / 1_048_576;
// or
const sizeInMB = theArray.byteLength / 1_000_000;

(没有理由你不能用你的Uint8Array同样,为了稳健性;在Uint8Array and Int8Array, length and byteLength返回相同的值。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取以 Uint8Array 表示的图像的大小? 的相关文章

  • 我可以从 React Native 项目中删除 tvOS 吗?

    Eventually I will be submitting a react native app to the app store but the app will only run on iOS not tvOS Will I be
  • Bootstrap 3 + 选择 + jquery 验证丢失格式

    我有下面的代码http jsfiddle net emamut CBjmj 4 http jsfiddle net emamut CBjmj 4 validator setDefaults ignore hidden not select
  • 如何使用jsp上传服务器文件夹上的文件[重复]

    这个问题在这里已经有答案了 我正在尝试使用 servlet jsp 将一些图像上传到位于我的服务器上的文件夹中 下面是我的代码 它在我的本地计算机上运行 import java io import java util import java
  • Google Adsense 中的 Javascript 错误

    在我的几个运行 AdSense 的网站上 我收到以下错误 无法将消息发布到 http googleads g doubleclick net http 5Dgoogleads g doubleclick net 收件人有来源http www
  • 如何在cordova中动态加载CSS

    我正在尝试通过 xhr 请求在 cordova 中动态加载 CSS CSS 的加载不是问题 我可以通过 xhr 加载它并通过 HTML5 文件 API 将其存储到文件系统 然后我就可以得到一个完美的 URL 但是如果我通过 javascri
  • 单击单选按钮时事件触发的顺序是什么?

    我知道这在浏览器之间是不同的 例如如果我将一个函数附加到单选按钮的 onclick 和 onchange 事件 然后单击它 Chrome 会触发 onchange 然后触发 onclick 而 Firefox 则会执行相反的操作 是否有任何
  • Magento 以编程方式删除产品图像

    这肯定是一个非常简单的编程任务 我绝对无法在网上找到任何有关它的信息 基本上 我正在尝试删除产品图像 我想删除产品媒体库中的所有图像 我可以在不为如此简单的任务编写一百万行代码的情况下完成此操作吗 请注意 我已经尝试过 attributes
  • 如何在输入Bootstrap Datepicker中仅显示年份?

    我使用以下代码仅显示年份 datepicker datepicker viewMode years minViewMode years 但输入以格式显示 dd mm yyyy 由于我没有格式 我该如何解决这个问题 yyyy 尝试这个 dat
  • 如何将 Chosen 合并到我的 React 项目中?

    我想使用 jquery 插件Chosen https harvesthq github io chosen 在我的项目中 我安装了 jQuery 并通过 npm 选择 npm i jquery chosen js S 这两个库现在都位于我的
  • 不显眼的 Javascript 混淆了事件处理

    你知道我最喜欢引人注目的 javascript 的什么吗 当你触发一个事件时 你总是知道它会做什么 a a 现在每个人都在喝这种不引人注目的酷爱饮料 这一点就不那么明显了 对绑定事件的调用可以发生在页面中包含的任意数量的 javascrip
  • 全局注册vue组件

    我有一个使用 vue cli 创建的 vue 应用程序 我正在创建一些组件 我想像这样使用它们
  • 检查变量/键是否存在

    我有一位价值不同的客户 如果客户 是 则分数 10 如果客户 否 则得分 5 如果客户为空 则分数 0 对于第一个和第二个条件 我的 json 结构如下 json fields customer 1 0 3 self aaa value y
  • 释放 Javascript 中未附加 DOM 节点使用的内存

    作为我的应用程序的一部分 我将一组小型 Dom 节点放在一起 这些节点不会一次全部显示 我将它们存储在内部数组中 用户可以调用它们的显示 在这种情况下 我将它们重新设置为用于显示它们的 div 这一切都很好 但是 当需要用新的替换所有它们时
  • 如何在类组件中使用 setState 以正确的方式更新数组内对象的属性?

    我有一个处于状态的对象数组 其结构如下 const arrayOfTests id 1 name test1 description test description id 2 name test2 description test des
  • 跨页面加载跟踪子窗口

    如果重新加载父页面 是否可以跟踪子窗口 我目前打开窗口如下 var childWindow childWindow window open url 当我想重新打开同一个子窗口时 childWindow focus 明显的问题是 如果刷新父窗
  • jquery 是否有 .toggle() 的替代方案[重复]

    这个问题在这里已经有答案了 目前根据 Jquerysite http api jquery com category deprecated deprecated 1 8 toggle 在 1 8 版本后已被弃用 那么有没有 toggle 的
  • 如何包含和使用 math.js

    我正在尝试使用 math js http mathjs org docs reference functions inv html http mathjs org docs reference functions inv html 但我不知
  • 查找二维数组中的最短路径(Javascript)

    我正在尝试实现一种算法 该算法在以下二维数组中找到最短路径 从左上角到右下角 A A A B A B B B B B A B A A A A B B B B A A A A A 规则是 路径必须在 A 和 B 之间交替 输出必须是一个数字
  • 使用 ImportXml 在 Google Sheets 中抓取图像

    我正在使用 Google Sheets 尝试从房地产网站上抓取图像 以将其显示在单元格中以及房产详细信息旁边 我已经能够使用一个简单的示例证明这是可能的 但是当我尝试制定 xpath 查询来抓取我需要的特定图像时 我不断收到错误 作为一个工
  • 在CKEditor中,如何向按钮添加“文本”标签?

    editor ui addButton ImageUpload label Upload Image command popup image uploader icon this path images icon png 这就是我现在的代码

随机推荐