问题标签 [uint8array]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
flutter - 将 uint8list 图像转换为支持的图像文件(jpg 等)
在 android 10 和 11(SDK 编号 29 和 30)中,音乐封面(艺术品)格式与以前的版本不同,事实上,它们不能作为支持的图像文件(如 jpg 或 png)读取,它们是 uint8lists 和只有 Image.memory 小部件接受并显示它们。
现在,我的问题是我不想将它们作为记忆图像读取,我需要 jpg 等文件。
搜了很多!阅读了很多,发现只有 1,没有工作的解决方案!那就是将unit8list作为字节写入文件中,其路径以“.jpg”结尾。正如我所说,它不起作用。
任何人都可以帮忙吗?
在此先感谢,<3。
uint8list 示例:[255, 216, 255, 224, 0, 16, 74, 70, 73, 70, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 255, 226, 2, 40、73、67、67、95、80、82……]
长度:千
javascript - 对象嵌套 Uint8Array(32) 到 String 到 btoa 到 localStorage 到 atob 到 Uint8Array(32)
我的 javascript 技能很少,我不确定在将原始 Uint8Array(32) 发送到 localStorage、解码并转换回 Uint8Array(32) 后如何获取它。下面你会看到我尝试对私钥进行字符串化,然后对其进行 base64 编码,以便将其发送到 localStorage 以供以后使用:
在这里,您会注意到我正在尝试获取私钥,以便我可以通过从 localStorage 获取 base64 编码的字符串并从中创建一个新的 Uint8Array 来生成相应的公钥:
在这里您会看到输入的结果与输出的结果不同:
在
出去
我认为问题可能是使用 JSON.stringify 将嵌套的 Uint8Array 转换为字符串,但我不确定是否有其他方法可以使此功能正常运行。
为什么对象输入与对象输出不一样?我想学习如何做到这一点,帮助对我来说意味着世界。
javascript - Javascript,IndexedDB,存储 Uint8Array,给出错误
自从我开始阅读 IndexedDB 以来已经有几个小时了,我遇到了一些问题。这是我从https://medium.com/@AndyHaskell2013/build-a-basic-web-app-with-indexeddb-8ab4f83f8bda和https://gist.github.com/JamesMessinger/a0d6389a5d0e3a24814b遵循的代码,它只是放为了理解起见,在一起很糟糕。所以我想要做的是将密钥存储到 IndexedDB 中,以便我可以使用它来使用 ECIES 方案加密事物。
相关代码(先后顺序):
由于某种原因,在前端脚本中调用 genSKey 时,我收到以下控制台错误:
控制台记录了更多内容,但其他内容与手头的问题无关。我不确定自己做错了什么,而且我整天都在做这件事。一些洞察力对我来说意味着世界,谢谢。
javascript - 为什么 new Uint8ClampedArray 的 new ImageData 会创建黑白图像
我将 2 个图像拼接在一起以创建一个图像。叠加可能是一个更好的术语。第一张图如下。
在做了一些画布魔术之后,我可以使用两个画布元素覆盖最终图像,看起来像这样
然后,我抓取两个图像的图像数据并将图像数据“缝合”在一起,以使用以下技术从覆盖到单个画布中的 2 个画布元素重新创建单个图像的错觉
前景和背景都是使用画布 API 中内置的 ctx.getImageData 函数的 ImageData。然后,我从新的 Uint8ClampedArray 重新创建新的图像数据,并将其输入到新 ImageData 的构造函数中。结果正是我想要的,除了它只有黑白!为什么 RGB 值不结转?这对我来说没有意义,有人可以解释为什么,尽管我携带了图像数据,但它只将其保存为黑白?
这是最终结果
video - 十六进制在毫秒内发生了什么?
我有价值观88
40
B0
00
。它们是十六进制的。我不明白怎么做,但它们代表了几纳秒。我需要帮助来理解这份概述 Matroska 和 WebM 元数据编码的文档。我对此比较陌生,但我正在使用 JavaScript 来更改文件持续时间。我目前正在使用的作品,但目标是知道如何设置 WebM 视频文件的自定义持续时间。该文档显示了持续时间参数的以下内容:
- 元素名称
- 期间
- EBML 树中的级别
- 2
- 元素 ID 显示为八位字节
- 0x4489
- 强制的
- 错误的
- 可能出现多次
- 错误的
- 包含在
- 1
- 2
- 3
- 4
- 可在 WebM 中使用
- 真的
- 描述
- 基于 TimestampScale 的分段持续时间(以纳秒为单位)
我正在使用默认的时间戳刻度 ( 1000000
)。我的问题是如何获得这些十六进制值,并将它们转换为hours:minutes:seconds:milliseconds
. 我只是被难住了:(0x8840B000
对我没有帮助。
javascript - 为什么 Uint8Array.toString('hex') 不返回十六进制?
鉴于此(基于另一个答案):
为什么它不以十六进制返回?
编辑,我困惑的根源。我正在使用hypersdk 库。这允许.toString('hex')
模式。
当我切换到烧杯时,我不能再使用它了。
编辑2:
我认为我的困惑是因为我使用的是基于 node.js 的Buffer
对象:https ://nodejs.org/api/buffer.html#buffer_buf_tostring_encoding_start_end
这是使用 hypersdk 浏览器化的,这样缓冲区被表示为一个TypedArray
对象,toString
原型方法被覆盖以匹配Buffer
版本。
arrays - 整数转数组说明
请帮忙
我知道您正在阅读本文,如果没有答案,我将不胜感激,因为我觉得只有我一个人试图解决这个问题。
这是如何运作的?
我已经彻底阅读了这份文件。它提到了一个名为 TimestampScale 的元素。我已经下载了大约 30 个 WebM 示例文件,发现HEX { 0x2AD7B1
or 2A
D7
B1
or ['2A','D7','B1']
} 或NON-HEX integers { 42
215
177
or [42, 215, 177]
} 后面的值总是相同的:HEX { 0x830F4240
or 83
0F
42
40
or ['83', '0F', '42', '40']
} or NON-HEX integers { 131
15
66
64
or [131,15,66,64]
}。这些值都应该是1000000
Matroska Element Specification 中所述的默认值。所以问题是......0x830F4240
最终如何1000000
?
上面的 Incase 对您来说太草率了,或者您想要更多解释:
所有值如何以 HEX 和整数显示:
目标:
目标是弄清楚如何将值转换为 make 1000000
,这样我就可以在 Matroska 元素规范中的其他元素上使用这种转换(如持续时间转换)。
javascript - 如何*反转* JavaScripts DataView?
我知道这个问题的措辞很奇怪,所以让我用两个例子来解释一下。
示例 1
下面的代码将一系列值[64, 176, 0, 86, 68, 97, 136, 8]
转换为 float 4096.336980910979
。
输入 float 时如何反转它以获取一系列值?[64, 176, 0, 86, 68, 97, 136, 8]
4096.336980910979
示例 2:
下面的代码将一系列值[70, 253, 192, 0]
转换为 float 32480
。
输入 float 时如何反转它以获取一系列值?[70, 253, 192, 0]
32480
node.js - 如何在 MongoDB 中存储 ArrayBuffer?
我正在尝试构建一个 Electron React App 来捕获屏幕的短视频但无法存储视频(作为更大的“有效负载”对象的一部分:
{video_buffer: xxx, time_stamp: 3456345 ...}
视频是在渲染器进程中通过API 创建的MediaStream
,MediaRecorder
然后转换为 Blob。这是一些示例代码:-
当我转换为 URL 并将其设置为 Video 元素 src 时,缓冲区有效
let videoURL = URL.createObjectURL(blob)
视频很短,最大占用约 2.5MB。
我只能通过IPC
(而不是 Blob)发送缓冲区(或 URL)。
在主要过程中,我使用 Mongoose 和模式:
new payloadSchema = {video_buffer: {type: Buffer}}
但这不起作用,大概是因为 buffer 是 anArrayBuffer
而不是 a Data View
or TypedArray
。
所以我尝试将它转换为一个Uint8Array TypedArray
对象:
const new_buffer = new Uint8Array(buffer)
但我在保存时收到此错误:
然后我尝试将其转换Uint8Array
为十六进制编码字符串,然后将其存储为缓冲区。
在终端中查询 MongoDB 时,它存储了字符串:
const buff_to_hex_string = new_buffer.toString('hex')
然后像以前一样通过 Mongoose 保存它:(Schema {type: Buffer})
这似乎适用于 MongoDB 的以下输出:
保存的 Payload Schema 的输出是:
问题:在检索存储的缓冲区对象时,将其转换回 ArrayBuffer 以便我可以在视频元素中播放它的最简单方法是什么?
我需要向后转换 --> 十六进制字符串 --> Uint8Array --> ArrayBuffer ---> Blob ---> URL 吗?
我已经尝试了很多提供的方法,但都没有奏效。
任何帮助将非常感激。
谢谢。
javascript - 在 js 和 php 中使用 rlp 编码(前缀编码)时我有不同的结果
我在 php( https://github.com/MinterTeam/php-rlp)和 js(https://www.npmjs.com/package/rlp )中使用包 rlp 进行前缀编码。当我将 rlp 与数组一起使用时,例如 rlp->encode([1,2,3,4]),我在 php 和 js 中的结果相同,但是当我在 js 中使用 uint8array 时,例如 rlp->encode(new Uint8array([1,2,3,4])),我有不同的结果。php中的类比Uint8array是什么?