首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何有效地拼接Uint8Array?

如何有效地拼接Uint8Array?
EN

Stack Overflow用户
提问于 2019-11-22 22:03:21
回答 1查看 614关注 0票数 0

我正在尝试在浏览器上从头开始创建一个GIF图像。这一切都是有效的,但它需要大量的时间来建立一个让人感觉平淡无奇的小形象。(高端处理器上100帧的300x200的速度为2.6s)

目前,我正在将所有数据连接到一个简单的Array中,并在完成后将所有内容转换为Uint8Array。我猜使用Uint8Array会有更好的内存和效率,但是我不知道如何在创建数据时将其连接起来。

我每次都尝试重新创建Uint8Array,但它明显降低了性能。我试着使用Stream,但从来没能让它工作。

代码语言:javascript
复制
// kinda concat
stream = new Uint8Array([
    ...stream,
    ...graphicControlExtension,
    ...imageDescriptor,
]);

MDN Stream的例子很让人困惑,所以如果有人能给我指出正确的方向,那就太好了。=D

EN

回答 1

Stack Overflow用户

发布于 2019-11-22 22:14:23

代码语言:javascript
复制
uint8stream = new Uint8Array([]);
uint8stream.set(stream);
uint8stream.set(graphicControlExtension, stream.length);
uint8stream.set(imageDescriptor, stream.length + graphicControlExtension.length);

否则,您应该先转换它们

UPD:要提升它,您可以:

1)尝试使用push而不是concat

2)尽量使用lodash.concat (比Array.prototype.concat快)

3)编写您自己的concat方法,就像this文章中那样

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58995872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档