博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] js实现对图片的二进制流md5计算
阅读量:6940 次
发布时间:2019-06-27

本文共 1886 字,大约阅读时间需要 6 分钟。

//计算图片md5        function img_MD5(img_path,callback) {            plus.io.resolveLocalFileSystemURL(img_path, function(entry) {                var fileReader = new plus.io.FileReader();                fileReader.readAsDataURL(entry);                fileReader.onloadend = function(evt) {                    var format="image/jpeg";                    //抽取DataURL中的数据部分,从Base64格式转换为二进制格式                    var bin = atob(evt.target.result.split(',')[1]);                    //创建空的Uint8Array                    var buffer = new Uint8Array(bin.length);                    //将图像数据逐字节放入Uint8Array中                    for (var i = 0; i < bin.length; i++) {                        buffer[i] = bin.charCodeAt(i);                    };                    //利用Uint8Array创建Blob对象                    blob = new Blob([buffer.buffer], {type : format});                    var fileReader1 = new FileReader();                    fileReader1.readAsBinaryString(blob);                    fileReader1.onload = function(evt) {                        if (evt.target.readyState == FileReader.DONE) {                            var imgblob = evt.target.result;                            var sparkMD5 = new SparkMD5();                            sparkMD5.appendBinary(imgblob);                            var MD5 = sparkMD5.end();                            console.log("MD5:" + MD5);                            callback(MD5)                        }                    };                }            }, function(e) {                console.log("Resolve file URL failed: " + e.message);            });        }//使用方法var url=document.getElementById("ID").src;img_MD5(url,function (md5){                    console.log(md5)                })

对二进制流进行md5加密需要用spark-md5.js

最新发现本地图片nativeObj 里的bitmap.toBase64Data();拿到Base64是经过压缩的,拿到的是jepg;所以要用本地io把图片Base64读出来。

 

转载于:https://www.cnblogs.com/chris-oil/p/8607887.html

你可能感兴趣的文章
Hadoop生态圈-Kafka配置文件详解
查看>>
conan c&&c++ 包管理工具使用
查看>>
maven跳过单元测试-maven.test.skip和skipTests的区别
查看>>
写给大数据开发初学者的话5[转]
查看>>
打开文件或者uri的方式--------进程启动文件和启动者启动文件
查看>>
zabbix 监控 oracle 数据库
查看>>
vue provide和inject使用
查看>>
一周最新示例代码回顾 (5/7–5/13)
查看>>
http 上传文件的方法
查看>>
怎样判断一个数是不是质数
查看>>
2013生活之轮
查看>>
[转]Silverlight DataGrid组件具体特点详解
查看>>
float & hasLayout
查看>>
Java中的泛型方法
查看>>
技术人员如何确认web产品的需求
查看>>
C# 文本插入到光标所在处
查看>>
ajax终结篇
查看>>
hdu-4466-Triangle 数学题
查看>>
Easyui 让Window弹出居中
查看>>
第三方文本框 在div中显示预览,让指定节点不受外部css影响
查看>>