JavaScript 获取图片尺寸及放大图片的实现方法

作者:代码拾荒

时间:2026-10-27

浏览:276

本文介绍在JavaScript中获取图片实际尺寸的方法,对比DOM属性width/height与style.width的区别,并演示如何通过naturalWidth和naturalHeight实现图片放大而不失真。

文章目录
1)获取图片尺寸

获取图片尺寸与DOM属性分析

示例代码如下:

 
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
//获取DOM属性
console.log("width="+t.width);//输出200
console.log("height="+t.height);//输出300
//操作CSS样式
console.log("styleWidth="+t.style.width);//结果为空
console.log("styleHeight="+t.style.height);//结果为空
} 

2)获取图片尺寸(不设置宽高)

示例代码如下:

 
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)"/>
<script>
function getWH(t){
//获取DOM属性
console.log("width="+t.width);//输出200
console.log("height="+t.height);//输出300
//操作CSS样式
console.log("styleWidth="+t.style.width);//结果为空
console.log("styleHeight="+t.style.height);//结果为空
} 

结论:若未在样式中显式定义宽高,则style.width和style.height始终为空。



3)放大图片:

此处利用IE私有属性机制,旨在防止图片放大时出现严重失真。


图片放大实现与局限性

示例代码如下:

 
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
t.width *= 2;
t.height *= 2;
//每次点击事件触发,宽高数值放大一倍
} 
</script>

4)在FF与谷歌中,我们还可以用naturalWidth与naturalHeight取得图片的原大小!

示例代码如下:

 
<img src="http://img.my.csdn.net/uploads/201309/03/1378223257_7957.jpg" alt="MM" title="MM(实际大小200*300)" onclick="getWH(this)" width="200" height="300"/>
<script>
function getWH(t){
console.log("width="+t.naturalWidth);
console.log("height="+t.naturalHeight);
t.width = t.naturalWidth * 2;
t.height = t.naturalHeight * 2;
} 
</script>

naturalWidth和naturalHeight仅为只读属性,无法用于动态设置图片尺寸,故不能实现持续放大效果。


获取图片尺寸与DOM属性分析 示例代码如下:

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章