标签: arraybuffer

如何有效地将THREE.Geometry转换为ArrayBuffer,File或Blob?

我想移动一段我的代码,我在其中构建一个THREE.Geometry对象到HTML5 Web Worker.

因为我不想将它序列化为字符串(出于明显的性能目的),我想将它转换为可传输的对象,如ArrayBuffer,File或Blob,所以我可以"通过引用"传递它.

您是否知道将THREE.Geometry转换为其中一个对象的有效方法?

javascript performance web-worker three.js arraybuffer

3
推荐指数
1
解决办法
1970
查看次数

Uint16Array到Uint8Array

我有一个基本问题.说我有一个Uint16Array,我有4号.

data_16=new Uint16Array([4]);  
Run Code Online (Sandbox Code Playgroud)

现在我的长度为1,byteLength为2;

我如何将其转换为Uint8Array.

我不想创建新视图.

data_8 = new Uint8Array(data_16)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我得到数组长度1和byteLength 1.这不是我想要的.

我需要将16array中的16位值扩展为8位值,以便8位数组,因此最终会得到8位数组的8位数组.

我可以创建一个函数,用shif和所有东西进行转换.但它可以仅使用数组操作吗?

javascript arraybuffer uint16

3
推荐指数
1
解决办法
2831
查看次数

JSON.stringify 或如何将二进制数据序列化为 base64 编码的 JSON?

我有一个 Javascript 对象,它将由一个带有参数和子对象的非循环对象层次结构组成。其中一些对象可能保存从文件加载或通过 XHR 接收的二进制数据(如果 Blob、ArrayBuffer 或其他东西尚未定义)。

通常我会使用 JSON.stringify() 将它序列化为 JSON 但我如何指定二进制数据将被 base64 编码?

那么你会推荐我什么二进制数据对象(Blob,ArrayBuffer,...)?

编辑:除普通 JSON 之外的其他数据格式不是一种选择。

javascript json blob arraybuffer

3
推荐指数
2
解决办法
2万
查看次数

Javascript:使用XMLHttpRequest发送arrayBuffer

我想使用XMLHttpRequest发送多部分表单。我要附加的文件是jpg文件。将文件追加到FormData对象可以正常工作。

但是我想在发送之前处理图像文件。因此,我有一个使用Uint8Array作为输入和输出的库。所以我将处理后的图像作为UInt8Array。

我尝试使用

form.append("picture", new Blob(fileAsArray, {type: "image/jpg"} ));
Run Code Online (Sandbox Code Playgroud)

但它会创建一个八位位组/流。那么,如何通过XMLHttpRequest multipart / form发送Uint8Array以便服务器看到与发送文件对象相同的内容?

javascript multipartform-data xmlhttprequest arraybuffer

3
推荐指数
1
解决办法
3215
查看次数

如何从angular2 RC5中的API下载PDF?

前一个问题有一些很好的解决方法:

Angular 2从API下载PDF并在View中显示它

但是现在RC5已经出来了,我们可以使用arrayBuffer().我似乎无法随心所欲.我如何从这个转到一个不错的pdf blob:

return this._authHttp.get(this.fileUrl+id)
        .map((res:Response) => res.arrayBuffer())
        .subscribe(
            data => {
                console.log(data);
                var blob = new Blob([data], {type: 'application/pdf'});
                console.log(blob);
                saveAs(blob, "testData.pdf");

        },
            err => console.error(err),
        () => console.log('done')
    );
Run Code Online (Sandbox Code Playgroud)

数据最终是我预期的两倍.我缺少什么想法?

pdf http arraybuffer angular

3
推荐指数
1
解决办法
9002
查看次数

“引发RangeError:无效类型数组长度”为看似-有效输入

我有以下片段:

new Uint16Array( arraybuffer, 0, 18108 );
Run Code Online (Sandbox Code Playgroud)

我知道,arraybuffer是的一个实例ArrayBuffer,那arraybuffer.byteLength是31984.该arraybuffer的内容是一个黑盒子给我。因为缓冲区的byteLength> 18108,所以我希望它能正常工作。相反,我得到以下错误:

铬:

RangeError:无效的类型化数组长度

Firefox:

TypeError:无效的参数

是什么原因导致失败,或者如何检查无法打开的ArrayBuffer?

javascript typed-arrays arraybuffer

3
推荐指数
1
解决办法
2742
查看次数

3
推荐指数
2
解决办法
2960
查看次数

如何访问从 Blob 创建的 ArrayBuffer 的索引?

我不认为自己是程序员,所以我通过搜索这个网站找到了很多很多问题的答案。不过,我一直无法弄清楚这一点。

使用 Javascript(真的是我现在可以尝试的唯一语言),我正在尝试上传文件并将其二进制数据加载到 ArrayBuffer 中进行编辑。我同时使用 FileSaver.js 和 Blob.js 来提高兼容性。我让用户选择文件,然后加载文件。加载开始时,FileReader 使用 readAsArrayBuffer 将文件加载到 ArrayBuffer 中。我目前已将其设置为发出警报以检查 ArrayBuffer 的内容,但我最终将删除它并简单地处理数据。

如果我取出索引,警报就会知道它正在显示一个 ArrayBuffer,但是每当我选择一个索引(如 [0])时,它都会告诉我它是未定义的。如何将文件数据放入 ArrayBuffer?以及如何分割?最好我想要 1 个字节的索引。

function loadButtonPressed() {
    var loadedFile = document.getElementById('loadFile').files;
    var testFile = loadedFile[0];
    var reader = new FileReader();
    reader.onloadend = function(evt) {
        if (evt.target.readyState == FileReader.DONE) {
            alert(String(reader.result[0]));
        }
    };
    reader.readAsArrayBuffer(testFile);
}
Run Code Online (Sandbox Code Playgroud)

javascript filereader arraybuffer

3
推荐指数
2
解决办法
6096
查看次数

如何从ArrayBuffer获取数组?

我有一个ArrayBuffer看起来像: 在此处输入图片说明

该缓冲区放置在名为的变量下,myBuffer而我感兴趣的是Uint8Array从此对象获取。

我试图循环为:

myBuffer.forEach(function(element) {
    console.log(element);
});
Run Code Online (Sandbox Code Playgroud)

并通过以下方式直接访问数组:

console.log(myBuffer['[[Uint8Array]]']);
console.log(myBuffer['Uint8Array']);
Run Code Online (Sandbox Code Playgroud)

但是似乎这都不是正确的方法

javascript arrays typed-arrays arraybuffer

3
推荐指数
2
解决办法
3760
查看次数

3
推荐指数
1
解决办法
1511
查看次数