• [转] js实现对图片的二进制流md5计算


    //计算图片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读出来。

     

  • 相关阅读:
    CCF计算机职业资格认证考试 201809-2 买菜
    【CodeVS3013】单词背诵
    【CodeVS3304】水果姐逛水果街Ⅰ
    【CodeVS4246】奶牛的身高
    【hdu1247】Hat’s Words
    【CodeVS4189】字典
    【CodeVS4244】平衡树练习
    【poj3264】Balanced Lineup
    【树状数组】
    【CodeVS1163】访问艺术馆
  • 原文地址:https://www.cnblogs.com/chris-oil/p/8607887.html
Copyright © 2020-2023  润新知