在vue中获取input上传图片的宽和高

在vue中获取input上传图片的宽和高

项目中有一个需求是需要上传190px*192px的png图片,一般直接在files.input[0]里面是找不到的,所以要变个思路了。

上代码

// html
<input type="file" accept="image/png" name="iconFile" @change="getFile">
// js
getFile (e) {
    let imgSrc = window.URL.createObjectURL(e.target.files[0]);
    let img = new Image();
    img.src = imgSrc;
    let this_ = this; // onload 里面不能用this
    let type = this.formData.iconFile.type.split('/')[1];
    img.onload = function () {
    	// 我在这里就可以获取到图片的宽度和高度了 img.width 、img.height
        if ((img.width === 192) && (img.height === 192) && (type === 'png')) {
        this_.$Message.success({content: '真棒!!!'})
        // todo
        } else {
            e.target.value = null
            this_.$Message.error({content: '选的啥玩意!'})
        }
    };
},

思路

  1. 把我选择上传的图片资源拿过来;
  2. new Image();
  3. 把拿来的资源塞到new出来的img里面,里面,嗯 没错;
  4. 新建的image加载完后就可以拿到新建的image的高和宽了;

我没有测试兼容性,不知道兼容怎么样,我的谷歌可以运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值