获取图片宽度与高度

在进行图片上传的功能开发过程中,在功能中需要对上传的图片进行宽度、高度限制,以下罗列以下获取图片高度、宽度的方式:

一、在java中获取图片宽度、高度:

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

InputStream inputStream;

//通过Spring MVC 获取文件流
MultipartFile logoImg ;
nputStream = logoImg.getInputStream();

//通过文件获取文件流
 inputStream = new FileInputStream(new File("文件地址/文件名称"));

BufferedImage buff = ImageIO.read(inputStream );
buff.getWidth();//宽度
buff.getHeight();//高度

*   在使用ImageIO进行图片转换为BufferedImage时,如果图片是使用的 CMYK 颜色表颜色模式时,在进行转换时就会出现 Unsupported Image Type 错误,无法成功转换为BufferedImage,第一种方式:需要用户使用PS将CMYK颜色表的图片转换成RGB颜色表图片再进行上传。第二种方式:在服务端将CMYK颜色表图片转换成RGB颜色表图片保存到服务器本地,然后再通过ImageIO读取本地新写的RGB的图片来获取图片高度和宽度,这种方式对服务器端要求比较高。

二、在JS中获取图片宽度、高度:

<img id="imgLab" src="http://www.iteye.com/upload/logo/user/975107/44f2f52c-e1e8-318d-ae43-df2fde2dcb8e.jpg" />

<script type="text/javascript">
var imgUrl = $("#imgLab").attr("src");
var img = new Image();
img.src = url;
var imgWidth = img.naturalWidth;
var imgHeight = img.naturalHeight;
if(imgWidth  == undefined ){
   imgWidth = img.width;
}
if(imgHeight  == undefined ){
   imgHeight = img.height;
}
imgWidth;//图片宽度
imgHeight;//图片高度
</script>

 基于jQuery获取图片宽度、高度,经过测试以上JS方式兼容大部分浏览器,在IE 7、IE 8中不支持naturalWidth、naturalHeight获取图片宽度和高度,但是在IE 7、IE 8中可以支持通过width、height方式获取图片宽度和高度。

* js方式不能获取file选择的本地图片的图片宽度和高度,图片必须是互联网中的图片才能通过new Image()来获取图片宽度和高度

猜你喜欢

转载自timerbin.iteye.com/blog/2303793