从批量URL中查找图像的尺寸

时间:2019-03-14 00:18:16

标签: javascript

StackOverflow的朋友您好!

我有一个txt文件,其中包含数百个指向图像的Web URL。图像全部为JPG格式。

我试图找出所有图像的尺寸,而不必经过检查每个图像上的元素。这将需要几个小时。我考虑过在javascript中创建某种循环,该循环逐行读取行,但我感到很困惑。我确实有一个代码可以告诉我图像尺寸,但是它不能批量执行操作。我必须每次替换图像的URL。

我将如何处理?如果我有一段代码(无语言偏好)可以逐行读取txt文件并在新文本文件中写入与读取的行相对应的图像尺寸,那将是理想的选择。

到目前为止,这是我的代码:https://codepen.io/th3pr099/pen/XGVoMp

function getMeta(url, callback) {
var img = new Image();
img.src = url;
img.onload = function() { callback(this.width, this.height); }
}
getMeta(
"https://www.w3schools.com/w3css/img_lights.jpg",
function(width, height) { alert("Width: " + width + 'px ' + "Height: " 
+ height + 'px') }
);

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是一个用JavaScript编写的想法(请注意,它使用了getMeta函数。):

<!doctype html>
<html>
  <body>
    Below is the textarea element that will take in the contents of your text file:<br />
    <textarea id="txtarea"></textarea>
    <button id="btn">Get image dimensions</button><br/><br/><br/>
    <script>
      //Your `getMeta` function goes below (I found that it works great)
      function getMeta(url, callback) {
      var img = new Image();
      img.src = url;
      img.onload = function() { callback(this.width, this.height); }
      }

      //When the button (id of "btn") is pressed,
      document.getElementById("btn").onclick=function() {
        //Get the value of the textarea, then split it on newlines
        var listOfLinks=document.getElementById("txtarea").value.split("\n");
        //iterate through each line
        for (var i=0;i<listOfLinks.length;i++) {
          //run your `getMeta` function to get width and height
          getMeta(listOfLinks[i],function(w,h) {
            //Append data to body
            document.body.innerHTML+="Image Dementions: ("+w+","+h+")<br />";
          });
        }
      };
    </script>
  </body>
</html>