Как загрузить изображение с точными заданными размерами

#javascript #jquery

#javascript #jquery

Вопрос:

Используя этот код, я пытаюсь загружать ТОЛЬКО изображения с размером 512X512 и отменять ввод файла при выборе любых других размеров, но я всегда получаю not a valid size of 512X512 , хотя выбираю правильный размер изображения 512X512

Я работаю над приведенным ниже кодом и ищу, как это исправить. По сути, я хочу отменить / отключить / выгрузить изображение, размер которого не является точным 512X512 , и очистить ввод файла

 var _URL = window.URL || window.webkitURL;

$("#file").change(function(e) {
  var file, img;
  if ((file = this.files[0])) {
    img = new Image();
    img.onload = function() {
      //alert(this.width   " "   this.height);
    };
    img.onerror = function() {
      alert("not a valid file: "   file.type);
    };
    img.src = _URL.createObjectURL(file);

 // if (this.width != 512 amp;amp; this.height != 512) {
 
    if (this.width != 512 || this.height != 512) {
      $("#file").val('');
      alert("not a valid size of 512X512");
    }
  }

}); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="file" id="file" /> 

Комментарии:

1. переместите if (this.width... его в ту img.onload часть, this где вы называете его не изображением, а вместо $("#file")

Ответ №1:

Вы должны переместить этот раздел:

 if (this.width != 512 || this.height != 512) {
  $("#file").val('');
  alert("not a valid size of 512X512");
}
 

в image.onload функциональный блок.

вот один из примеров: http://jsfiddle.net/4N6D9/1 /