- 第一种
// 创建对象
const img = new Image();
// 改变图片的src
img.src = url;
// 加载完成执行
img.onload = function () {
// 打印
console.log(img.width,img.height);
};
----------------------------------------------------------------------------------------------------------------
- 自己测试代码
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="img"></div>
</body>
<script>
// 获取 id为 img 的元素
var img = document.getElementById('img');
// 创建 Image对象
var imgObj = new Image();
// 为 src 属性赋值
let url = "./static/image/0df3d7ca7bcb0a46560821886b63f6246b60af5d.gif";
imgObj.src = url;
// 将 Image对象插入到 img元素中
img.appendChild(imgObj);
// 当 imgObj 加载完毕后触发事件
imgObj.onload = function () {
// 控制台打印 Image对象的 宽 和 高
console.log(this.src); //获取的图片的绝对路径
console.log(this.getAttribute("src")); //获取的是图片的相对路径
// document.body.style.backgroundImage = "url("+this.getAttribute("src")+")";
console.log(imgObj.width + "----" + imgObj.height);
};
</script>
</html>
----------------------------------------------------------------------------------------------------------------------
2. 第二种
const {render } = ReactDOM;
const {Component} = React;
const src = "http://www.nature.org/cs/groups/webcontent/@photopublic/documents/media/bluebird-640x400-1.jpg";
class AtomicImage extends Component {
constructor(props) {
super(props);
this.state = {dimensions: {}};
this.onImgLoad = this.onImgLoad.bind(this);
}
onImgLoad({target:img}) {
this.setState({dimensions:{height:img.offsetHeight,
width:img.offsetWidth}});
}
render(){
const {src} = this.props;
const {width, height} = this.state.dimensions;
return (<div>
dimensions width{width}, height{height}
<img onLoad={this.onImgLoad} src={src}/>
</div>
);
}
}
const App = props =><div> <AtomicImage src={src}/> App </div>;
render(<App/>,document.getElementById('root'))
转自 清风明月 https://github.com/qingfengmy/blogs/blob/master/articles/20170922_js获取图片宽高.markdown