JS获取图片尺寸和字节大小
本地图片
字节大小
本地图片是比较简单的,使用File Api即可:
<input type="file" id = 'file' multiple/><br/>
<script>
document.getElementById("file").addEventListener("change", selectFile, false);
function selectFile(e) {
  var files = e.target.files;
  console.log(files[i].size);
}
  </script>宽高
需要使用FileReader来宽高dataurl,然后使用Image来获取宽高。
<input type="file" id = 'file' multiple/><br/>
<script>
document.getElementById("file").addEventListener("change", selectFile, false);
function selectFile(e) {
  var files = e.target.files;
  var f = files[0];
  var reader = new FileReader();
  reader.onload = (function(theFile) {
    return function(e) {
      var img = new Image();
      img.src = e.target.result;
      img.onload = function(){
        console.log(img.width);
        console.log(img.height);
      };
    };
  })(f);
  reader.readAsDataURL(f);
}
</script>网络图片
字节大小
通过fetch请求获取字节大小,在这里获取头信息Content-Length为空,需要使用blob数据中的 size。
<span id='output'></span><br/>
<img id="preview" width="300"/>
<script>
  fetch('/images/gzjzz2.png').then(function(res){
    return res.blob()
  }).then(function(data){
    document.getElementById("output").innerHTML =  `${data.size} bytes`
  })
document.getElementById("preview").src = '/images/gzjzz2.png'
</script>fetch兼容性比较一言难尽,chrome41+,ff39+,safari10.1+,safari-IOS10.3+,Edge14+,IE6-11均不支持。
具体图表参见caniuse: https://caniuse.com/?search=fetch
宽高
只需要使用Image即可:
<span id='output'></span><br/>
<img id="preview" width="300"/>
<script>
var img = new Image();
img.src = '/images/gzjzz2.png';
img.onload = function(){
  content = `宽:${img.width} 高:${img.height}`
  document.getElementById("output").innerHTML = content;
};
document.getElementById("preview").src = '/images/gzjzz2.png'
</script> 
                     
                     
                     
                     
                     
                     
                     
             
             
             目录
        目录