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

本文共 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

你可能感兴趣的文章
rabbitmq启动异常之error,{not_a_dets_file recovery.dets
查看>>
关于webpack.optimize.CommonsChunkPlugin的使用二
查看>>
Python Locust对指定网站“一键压测”
查看>>
【hrbust2294】修建传送门
查看>>
mysql 5.7.15单机主从快速搭建并配置复制表到不同库
查看>>
Java 命名空间的由来和引入
查看>>
2016最后一贴,终于调通一个测试示例,并发现一个BUG???
查看>>
2016 年开发者头条十大文章系列
查看>>
JavaScript学习笔记(三)——this、原型、javascript面向对象
查看>>
2017第一周六
查看>>
转: 测试云服务器的工具相关
查看>>
用myeclipse 创建maven项目时,生成的项目名中总是包含Maven Webapp
查看>>
分布式事务 & 两阶段提交 & 三阶段提交
查看>>
linux下编译upx 3.93
查看>>
MySQL 优化
查看>>
混合背包 hdu5410 CRB and His Birthday
查看>>
MCMC采样理论的一点知识
查看>>
bram和dram差别
查看>>
Java用freemarker导出word
查看>>
建行手机银行4.0版本转账怎么不要求输入支付密码?
查看>>