我正在尝试在浏览器上从头开始创建GIF图像。一切都可以,但是要花很多时间来构建令人难以置信的小图像。 (对于在高端proc上具有100帧的300x200,为2.6秒)
当前,我将所有数据连接到一个简单的Array
中,并在完成后将所有内容都转换为Uint8Array
。我猜想使用Uint8Array
将是更好的内存和效率明智的选择,但是我在创建数据时并没有弄清楚如何连接我的数据。
我试图每次都重新创建Uint8Array
,但显然会降低性能。我尝试使用Stream
,但从未设法使其正常工作。
// kinda concat
stream = new Uint8Array([
...stream,
...graphicControlExtension,
...imageDescriptor,
]);
MDN Stream
示例只是令人困惑,因此,如果有人可以将我指向正确的方向,那就好了。 = D
如果所有变量都是uint 8数组(流,graphicControlExtension,imageDescriptor),请使用set方法。
uint8stream = new Uint8Array([]);
uint8stream.set(stream);
uint8stream.set(graphicControlExtension, stream.length);
uint8stream.set(imageDescriptor, stream.length + graphicControlExtension.length);
否则,您应该先将其转换