如何检查图像是否真的是jpeg?

时间:2019-04-18 12:46:53

标签: javascript angularjs file encoding hex

我已应用代码检查图像扩展名是否与图像内容真正匹配。 我检查了原始图像的前两个值,然后将其与[0xFF,0xD8]匹配,以确定它是点动图像还是jpeg图像。

使用jpg图片..可以正常使用,但不能使用JPEG格式。 维基百科为jpeg和jpg提供了这两种初始编码。 但是对于jpeg,我收到了[137,80]

$scope.checkContentOfImage=function(file){
var deferred =$q.defer();

var reader = new FileReader();

reader.onloadend  = function (e) {
    var arr = (new Uint8Array(e.target.result)).subarray(0, 4);
    let flag=true;
    let pattern=[0xFF, 0xD8];
    for(let i=0 ; i< 2; i++){
        if(arr[i]!=pattern[i]){
            flag=false;
            break;
    }}
if(flag){
    deferred.resolve("success");
}
else{
    deferred.reject("not image file");
}

}
reader.onerror=function(){
    deferred.reject("failuer in checking content");
}
reader.readAsArrayBuffer(file);
return deferred.promise;

}

如何检查jpeg编码格式?对于jpg来说效果很好

0 个答案:

没有答案