zoukankan      html  css  js  c++  java
  • 简单写一下图片上传获取宽高的方法

    最近,我负责的后台系统有一个图片上传校验图片比例的需求,以前没有做过这种需求,便查了一些资料总结了一下图片上传获取宽高的方法。
    想要获取图片的宽高首先要知道图片的url;一般图片上传UI组件或自己封装的组件都会获取到图片的url,知道url就好办了,上代码。

    var img_url = URL;//图片URL地址
    var imgObj = new Image();//创建对象
    imgObj.src = img_url;//改变图片地址
    console.log(imgObj.width + "" + imgObj.height)

    what?为啥输出是00;其实我也遇到过这个问题;原因是在输出之前图片还没有加载完,只要在图片加载完后就可以获取到了;

    var img_url = URL;//图片URL地址
    var imgObj = new Image();//创建对象
    imgObj.src = img_url;//改变图片地址
    imgObj.onload = function(){
        console.log(imgObj.width + "" + imgObj.height)
    }

    好了,这下就可以输出图片的宽高了;用这种方法效率不是很高,也可以用计时器循环检测来实现,只要图片宽和高任意一项大于0,就可获取到图片的宽和高;

    // 记录当前时间戳
    var start_time = new Date().getTime()
    // 图片地址 后面加时间戳是为了避免缓存
    var img_url = 'url'+start_time
    // 创建对象
    var imgObj = new Image()
    // 改变图片的src
    imgObj.src = img_url
    // 定时执行获取宽高
    var check = function(){
     // 只要任何一方大于0
     // 表示已经服务器已经返回宽高
        if (imgObj.width>0 || imgObj.height>0) {
            var diff = new Date().getTime() - start_time;
            console.log(imgObj.width + "" + imgObj.height)
            clearInterval(set);
        }
    }
    var set = setInterval(check,40)

    这种方法比onload方法执行效率会快一些;

  • 相关阅读:
    【转】Python常见web系统返回码
    【转】暴力破解无线WiFi密码
    【转】Django继承AbstractUser新建User Model时出现auth.User.groups: (fields.E304)错误
    Python去除文件中的空格、Tab键和回车
    用filter求素数
    【转】Python读取PDF文档,输出内容
    【转】RPC简单介绍
    【转】Python3使用Django2.x的settings文件详解
    Python生成随机字符串
    Python之turtle画同心圆和棋盘
  • 原文地址:https://www.cnblogs.com/PrayLs/p/10988232.html
Copyright © 2011-2022 走看看