问题标签 [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.

0 投票
1 回答
196 浏览

javascript - 在 Uint8Array 中查找字符串的索引

我有一个 Uint8Array,它实际上是 PDF 文件的内容。我想找到位于该数组中的某个字符串的索引,因此我可以在该位置插入一些内容。

为此,我实际上是将 Uint8Array 转换为字符串,然后在该字符串中搜索我想要查找索引的字符串。

这是片段

我遇到的问题是 utf-8 字符以可变长度(1-4 个字节)的字节编码,所以我得到的字符串的长度小于 UInt8Array 本身的长度,所以我得到的索引通过搜索字符串与“/ByteRange”字符串在 UInt8Array中的实际位置不匹配,因此它在应该插入之前被插入。

有没有办法获得 UInt8Array 的 1 字节字符串表示,如 ASCII 或类似的东西?

0 投票
0 回答
146 浏览

javascript - 通过createImageBitmap运行后getImageData不一样

我有一个下载图像并保存图像数据的功能。根据用户的喜好,它可以以两种方式之一保存图像数据 - 作为,或作为. 我正在使用图像加载功能等到图像加载完毕,然后再运行我的保存功能:ImageData Uint8ClampedArrayImageBitmap

保存图像数据的函数是这样的:

为了从我保存的图像中提取有意义的像素数据,我还有另一个函数,它也考虑了priority

priority当速度正常时,一切都按预期工作。加载图像,然后将其写入画布,获取其图像数据并保存为Uint8ClampedArray. 但是,在使用时priority = 'storage',我得到的结果不一致。有时,它按预期工作,我得到了良好的 RGBA 值。但是很多时候,对于某些图像 url,我得到的 RGBA 值全为 0(当对于相同的图像 url 时,我得到很好的 RGBA 值priority = 'speed'。)

我也尝试先做 ac.drawImage(image, 0, 0, 256, 256)然后createImageBitmap(c.canvas),只是为了确保图像数据在那里。没变。我也试过玩ImageBitmapRenderingContext,但我不能,我也drawImage不能getImageData

将我的图像转换为 anImageBitmap然后再转换为我的Uint8ClampedArray值有时最终为 0 时出了什么问题?是否有更好的方法将 RGBA 图像数据存储在内存中,仍然允许快速检索值?

谢谢阅读。

0 投票
0 回答
106 浏览

javascript - 如何从 Web Audio API getByteFrequencyData 获取累积频率数据?

我实际上正在使用 Web Audio API 和 React 开发一个项目,以进行音频可视化。我的目标之一是从我的音频文件中获取完整的(累积的?)频率数据。

实际上我正在使用AudioContextwithcreateMediaElementSource()方法,然后我得到这样的数据:

我试图获取累积的数据,setAudioFrequencyData([...audioFrequencyData, data])但在我的状态下我仍然只得到一个 Uint8Array,只有当前的频率数据。我想我在getByteFrequencyData()工作方式上遗漏了一些东西,但我可以找到什么......或者在使用 Uint8Arrays 时可能存在特殊性?

无论如何,任何帮助都会很棒,因为我被这个问题困住了,找不到解决它的方法。

预先感谢您的帮助!

0 投票
1 回答
194 浏览

javascript - 在 javascript 中从 unicode(代码点)创建 Blob

我试图通过只为我想在页面中显示的每个字符指定unicodes从Blob创建一个utf-8编码的 html页面。

例如:我试图显示字符 'a' 和 'b' 之间有一个不间断的空格。

如果我只传入 ASCII 范围 (0-127) 内的代码单元,Blob 似乎可以正常工作,但只要有大于 127 的代码单元(例如:代码单元 160/不间断空格)它在 html 中显示为无法识别的字符。

问题

以下是我使用的代码,

经过一些发现后,我发现 UTF-8 最多使用 4 个字节来表示一个字符,并且在代码单元 127 之后,它需要两个字节来表示超过 127 个的代码单元(在 UTF-8 中);所以为了使我的 unicode 表示 blob 工作,我必须按如下方式创建 blob,

问题 1 :当我们使用超过 127 个代码单元时,我们是否需要使用类似位移的技术(如https://gist.github.com/lihnux/2aa4a6f5a9170974f6aa )?

问题 2:但是如果我们做一些类似于 Base64 字符串的事情,它具有像图像或 pdf 这样的二进制数据,我们可以毫无问题地得到它的输出。

问题 2 的代码

第二种方法是否有效,因为图像、pdf 等二进制文件没有字符集?

任何人都可以请解释这两种情况。

0 投票
1 回答
6919 浏览

flutter - 在flutter中将内存图像(如Uint8list)保存为图像文件

我有一些 Uint8lists,我想将它们保存为 jpg 文件。我在网上搜索了很多,但一无所获!任何人都可以帮忙吗?

谢谢,

0 投票
1 回答
439 浏览

node.js - 使用 Node.js 以 JSON 格式发送 PDF 文件时使用什么数组格式

我们正在使用 Express.js 开发 Node.js API。我们的一个函数接收一些 ID。我们获取该 ID 并在 json 响应中返回一个 pdf 文件(存储在 AWS 上),如下所示:

我们面临的问题是我们不确定应该将该 pdf 转换成什么格式。我们应该将其转换为 Base64 字符串、Uint8 数组、二进制数组还是其他?

pdf 文件大小永远不会超过 200kb,因此响应大小和响应时间应该不是问题。

0 投票
1 回答
538 浏览

javascript - 将 uint8array 传递给函数

我正在尝试使用 fetch api 和可读流生成一个 excel 文件。我试图传递Uint8Array我从中获取reader.read()并从中创建一个缓冲区对象并将其传递给我的可写流,但是当我将数组传递给Buffer.from我时出现错误

The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received an instance of Object

以下是我的代码的相关部分。

我正在使用node.js&我在控制台中检查了typeof valueUint8Array

这里的页面是

传递 Uint8Array 的正确方法是什么?

谢谢。

0 投票
1 回答
291 浏览

angularjs - 使用 Angularjs/Spring 上传/下载 uint8array

我有一个使用 Angularjs 作为前端的 Spring 应用程序。

在前端,我读取了一个使用 Openpgpjs 编码的文件。在加密过程之后,我得到了一个我想保存到数据库的 Uint8Array 对象。

服务器接收请求如下,将二进制数据保存在数据库中

该文件可通过 url /files/raw/id 在我的应用程序中访问

我有以下功能来下载文件

问题是我下载文件时得到的 Uint8array 与我上传的不同。如果我将 responseType 更改为文本。该数字与我上传的 uint8array 匹配,但我怎样才能正确?

0 投票
1 回答
69 浏览

arrays - 重用 uint8_t 缓冲区来存储 UART 响应

我有一个uint8_t rxBuffer[200] = {0};数组。

缓冲区接收来自 UART 的消息 USART1.Receive(rxBuffer, sizeof(rxBuffer));

我想在这个 rxBuffer 中接收 UART 响应,解析它们,然后重用这个数组来解析进一步的响应。如何清除此缓冲区并重新使用它?

我尝试使用memset(rxBuffer, 0, sizeof rxBuffer);,但当我尝试打印缓冲区内容时,调试控制台上没有打印

我在这里做错了什么?

我将为我正在尝试做的事情提供一个 sudo 代码:

当我使用 memset 时,没有任何内容打印到控制台。当我不使用 memset 时,在这种情况下它也会打印以前的响应。

0 投票
1 回答
49 浏览

javascript - 将图像显示为 Uint8Array

我知道这个问题已经有了一些回应,但其中一个很清楚。

我有以下数组:

具有 19000 个元素(它是从 numpy 展平的 rgb 图像)

我有一个反应应用程序,它具有:

现在的问题是如何在不将其转换为 base64 的情况下填充此图像。我尝试了很多东西,例如:

将 imageUrl 设置为 src= 不起作用,我正在查看 image-js 库,但我需要一些帮助