使用JavaScript膨胀blob
Using JavaScript to inflate a blob?
我使用websocket发送blob形式的Jpeg图像。我已经压缩(gzipped) blob,但我无法找到一种方法来解压缩它使用JavaScript。有人知道怎么做吗?
这是我用来读取blob的代码,然后将其转换为base64字符串:
var r = new FileReader();
r.onload = function(){
draw(btoa(r.result));
};
r.readAsBinaryString(e.data);
draw()
函数基本上使用base64字符串将图像绘制到HTML5画布上。
我发现这个库可以膨胀字符串,但它不支持blobs。(据我所知/测试过)如果有人知道一种方法,我将不胜感激。:)谢谢!
我为我的粒子系统编辑器做了非常类似的事情,它支持读取Cocos2D plist文件。在plist文件中是纹理数据,它是用gzip压缩然后转换为base64的png格式。我是这样做的:
var input = 'byu9g1RZpINUpVtoKoiKIqJYoris...'; // really long string
// from base64 to ascii binary string
var decodedAsString = atob(input);
// ascii string to bytes in gzipped format
var data = this._binaryStringToArray(decodedAsString);
// raw, uncompressed, binary image data into an array using gzip.js
var uncompressed = require('gzip-js').unzip(data);
// now take the raw uncompressed png and convert it
// back to base64 to use it as a data url
var asString = this._arrayToBinaryString(uncompressed);
var encodedForDataUrl = btoa(asString);
var img = new Image();
img.src = encodedForDataUrl;
我使用gzip.js来做繁重的工作。你可以看到所有这些都在运行,你可以在这里加载一些列表。BoilingFoam。plist将工作,只需加载它在"导入/导出"部分。
在上面的代码中,我调用了两个方法,它们是: _binaryStringToArray: function(binaryString) {
var data = [];
for (var i = 0; i < binaryString.length; ++i) {
data[i] = binaryString.charCodeAt(i);
}
return data;
},
_arrayToBinaryString: function(array) {
var str = '';
for (var i = 0; i < array.length; ++i) {
str += String.fromCharCode(array[i]);
}
return str;
},
一切都在这里
获取一个byteArray,您可以使用pako
解码它:http://jsfiddle.net/9yH7M/
相关文章:
- Javascript/Jquery Blob not showing Chrome PDF
- 使用blob作为src图像
- 使用PHP,我如何将JSON blob附加到现有的多级JSON对象
- 从HTML表单发布blob的表单输入类型是什么
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 图像Blob>上传后是其大小的50倍
- Knockout绑定是膨胀的html(表单元格),如何使用javascript创建绑定或从父元素绑定
- createObjectURL blob url在Firefox中不安全
- 使用blob从ajax结果下载文件
- 将Excel BLOB转换为javascript数组
- html image blob to base64
- AudioContext从blob获取数据的视频创建MediaElementSource
- CSV、PDF、Excel文件在dataTables的导出扩展中作为blob下载
- 删除javascript中的大Blob
- Blob from DataURL?
- 内容安全策略指令:;脚本src'self'blob:文件系统:chrome扩展资源:“;获取是否时
- Javascript-将类型化数组保存为blob,并作为二进制数据读回
- Fin上传器直接上传到Azure Blob存储-在Javascript中获取文件uri
- 使用Ajax调用从Node.js服务器下载文件会产生截断的数据和膨胀的blob
- 使用JavaScript膨胀blob