在JavaScript中获取上传图片的宽度和高度,可以通过多种方式实现。以下是一些常见的方法:
document.getElementById('fileInput').addEventListener('change', function(event) {
var file = event.target.files[0];
if (file) {
var reader = new FileReader();
reader.onload = function(e) {
var img = new Image();
img.onload = function() {
console.log('宽度: ' + this.width);
console.log('高度: ' + this.height);
};
img.src = e.target.result;
};
reader.readAsDataURL(file);
}
});
在这个例子中,我们监听文件输入框的change
事件,当用户选择图片后,使用FileReader
读取图片文件,然后创建一个新的Image
对象,并设置其src
属性为读取到的图片数据URL。当图片加载完成后,可以通过img.width
和img.height
属性获取图片的宽度和高度。
document.getElementById('fileInput').addEventListener('change', function(event) {
var file = event.target.files[0];
if (file) {
var imgURL = URL.createObjectURL(file);
var img = new Image();
img.onload = function() {
console.log('宽度: ' + this.width);
console.log('高度: ' + this.height);
URL.revokeObjectURL(imgURL); // 释放内存
};
img.src = imgURL;
}
});
这种方法与方法一类似,但使用了URL.createObjectURL
来创建一个指向文件的临时URL,这样可以避免将整个文件读取到内存中。
document.getElementById('fileInput').addEventListener('change', function(event) {
var file = event.target.files[0];
if (file) {
var reader = new FileReader();
reader.onload = function(e) {
var img = new Image();
img.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext('2d');
ctx.drawImage(this, 0, 0);
// 如果需要,可以从canvas获取图片数据
URL.revokeObjectURL(img.src); // 释放内存
};
img.src = e.target.result;
};
reader.readAsDataURL(file);
}
});
这种方法通过将图片绘制到canvas
元素上,然后可以直接从canvas
的宽度和高度属性中获取图片尺寸。
以上方法适用于现代浏览器,对于旧版浏览器可能需要适当的兼容性处理。
小程序·云开发官方直播课(数据库方向)
新知
腾讯云GAME-TECH游戏开发者技术沙龙
云+社区技术沙龙[第21期]
云+未来峰会
云+社区沙龙online [技术应变力]
云+社区技术沙龙[第14期]
Elastic 中国开发者大会
Techo Youth高校公开课
领取专属 10元无门槛券
手把手带您无忧上云