获取图片原始宽高

async getImageSize(src) {
    return new Promise((resolve, reject) => {
      if (!src) {
        return reject("图片地址不能为空");
      }

      let image = new Image();
      image.src = src;

      // 方式一、从浏览器缓存中获取
      if (image.complete) {
        resolve({
          width: image.width,
          height: image.height
        });
        return;
      }

      // 方式二、加载事件中获取
      image.onload = () => {
        resolve({
          width: image.width,
          height: image.height
        });
        image = image.onload = image.onerror = null;
      };

      // 方式三、定时器获取
      let intervalId ;
      let timer= () => {
        if (!image) {
          clearInterval(intervalId );
          return;
        }

        if (image.width > 0 || image.height > 0) {
          clearInterval(intervalId );
          resolve({
            width: image.width,
            height: image.height
          });
        }
      };
      intervalId = setInterval(timer, 50);

      image.onerror = () => {
        reject(`加载图片出错: ${src}`);
        image = image.onload = image.onerror = null;
      };
    });
  }


版权声明:本文为weixin_42598901原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。