Как проверить, действительно ли изображение в формате JPEG или нет? - PullRequest
1 голос
/ 18 апреля 2019

Я применил код, чтобы проверить, действительно ли расширение изображения соответствует содержимому изображения. Я проверил исходные два значения необработанного изображения и сопоставил его с [0xFF, 0xD8], чтобы определить, является ли оно изображением jog или 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

...