当前位置:  开发笔记 > 编程语言 > 正文

有没有办法在JavaScript中读取二进制数据?

如何解决《有没有办法在JavaScript中读取二进制数据?》经验,为你挑选了4个好方法。

我想将二进制数据注入到JavaScript中的对象中.有没有办法做到这一点?

var binObj = new BinaryObject('101010100101011');

这样的效果.任何帮助都会很棒.



1> Greg..:

你可以使用parseInt:

var bin = parseInt('10101010', 2);

第二个参数(基数)是输入的基础.


我不得不指出,这个答案现在已经过时了2012年.你现在有_Typed Arrays_ http://www.khronos.org/registry/typedarray/specs/latest/ Ex:`var arr = Uint8Array(new ArrayBuffer(1000) ));`
@DannyStaple - 除了(当然)IE之外,还有令人鼓舞的今日浏览器数量:http://caniuse.com/#feat=typedarrays

2> RandomEtc..:

这里解释了这个二进制ajax库,还有另一个可以处理更多数据类型的二进制解析器库.

您还可以查看具有二进制Blob对象的 Google Gears,或者查看为Flash提供javascript包装,它提供了本机ByteArray实现.

或者......你可以坐下来等待并希望所有这些都成为标准 :)


这些链接不再有用......我建议使用更新的jBinary库:https://github.com/jDataView/jBinary

3> Vjeux..:

在所有最近的浏览器上,你可以做:

xhr.overrideMimeType('text/plain; charset=x-user-defined');

并检索一个字符串.要获得二进制结果,您必须这样做

data.charCodeAt(pos) & 0xff;

在Firefox和Chrome的每晚构建中,您可以将值检索为ArrayBuffer

xhr.responseType = "arraybuffer";

然后可以在那里访问结果

xhr.mozResponseArrayBuffer // Firefox
xhr.response // Chrome

然后,您可以在缓冲区上应用TypedArray(例如:Int32Array)或DataView来读取结果.


为了简化这个过程,我创建了一个jQuery Patch来支持二进制类型和一个使用浏览器最新可用读取功能的DataView Wrapper.



4> David Leppik..:

JavaScript几乎不支持原始二进制数据.一般来说,最好是在这个限制范围内生活.但是,我正在考虑尝试一个涉及操作巨大位图来在OLAP数据库中进行集合操作的项目. 这在IE中不起作用.

基本思想是:将二进制数据强制转换为PNG以将其发送到JavaScript.例如,位图可能是黑白PNG,黑色是100%透明.然后使用Canvas操作进行按位数据操作.

所述HTML5画布包括像素阵列型,从中可以访问字节的图像.Canvas还支持合成操作,例如XOR.变亮和变暗应该能够做AND和OR.这些操作可能会在任何支持它们的浏览器中得到很好的优化 - 可能使用GPU.

如果有人试图这样做,请让我知道它的运作情况.


使用HTML5画布时,请尝试使用processingJS库.它们有许多有用的实用功能.
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有