当前位置: 移动技术网 > IT编程>开发语言>Java > java中ImageReader和BufferedImage获取图片尺寸实例

java中ImageReader和BufferedImage获取图片尺寸实例

2019年07月19日  | 移动技术网IT编程  | 我要评论

imagereader 对象通常由特定格式的服务提供者接口 (spi) 类实例化。服务提供者类(例如 imagereaderspi 的实例)向 iioregistry 注册,后者使用前者进行格式识别和表示可用格式 reader 和 writer。

bufferedimage子类描述具有可访问图像数据缓冲区的image。bufferedimage由图像数据的colormodel和raster组成。raster的samplemodel中band的数量和类型必须与colormodel所要求的数量和类型相匹配,以表示其颜色和alpha分量。所有bufferedimage对象的左上角坐标都为(0,0)。因此,用来构造bufferedimage的任何raster都必须满足:minx=0且miny=0。

多的不用说,上代码,大家伙儿看看

/**
 * 
 */
package com.b510;
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.fileinputstream;
import java.io.filenotfoundexception;
import java.io.ioexception;
import java.util.date;
import java.util.iterator;
import javax.imageio.imageio;
import javax.imageio.imagereader;
import javax.imageio.stream.imageinputstream;
public class imageutil {
	/**
   * 源图片路径名称如:c:/1.jpg
   */
	private string srcpath = "e:/pool.jpg";
	public imageutil() {
	}
	public static void main(string[] args) throws exception {
		imageutil util = new imageutil();
		util.getimagesizebyimagereader(util.getsrcpath());
		util.getimagesizebybufferedimage(util.getsrcpath());
	}
	/**
   * 使用imagereader获取图片尺寸
   * 
   * @param src
   *      源图片路径
   */
	public void getimagesizebyimagereader(string src) {
		long begintime = new date().gettime();
		file file = new file(src);
		try {
			iterator<imagereader> readers = imageio.getimagereadersbyformatname("jpg");
			imagereader reader = (imagereader) readers.next();
			imageinputstream iis = imageio.createimageinputstream(file);
			reader.setinput(iis, true);
			system.out.println("width:" + reader.getwidth(0));
			system.out.println("height:" + reader.getheight(0));
		}
		catch (ioexception e) {
			e.printstacktrace();
		}
		long endtime = new date().gettime();
		system.out.println("使用[imagereader]获取图片尺寸耗时:[" + (endtime - begintime)+"]ms");
	}
	/**
   * 使用bufferedimage获取图片尺寸
   * 
   * @param src
   *      源图片路径
   */
	public void getimagesizebybufferedimage(string src) {
		long begintime = new date().gettime();
		file file = new file(src);
		fileinputstream is = null;
		try {
			is = new fileinputstream(file);
		}
		catch (filenotfoundexception e2) {
			e2.printstacktrace();
		}
		bufferedimage sourceimg = null;
		try {
			sourceimg = javax.imageio.imageio.read(is);
			system.out.println("width:" + sourceimg.getwidth());
			system.out.println("height:" + sourceimg.getheight());
		}
		catch (ioexception e1) {
			e1.printstacktrace();
		}
		long endtime = new date().gettime();
		system.out.println("使用[bufferedimage]获取图片尺寸耗时:[" + (endtime - begintime)+"]ms");
	}
	public string getsrcpath() {
		return srcpath;
	}
	public void setsrcpath(string srcpath) {
		this.srcpath = srcpath;
	}
}

运行结果:

大家可以很容易明白...应该选择哪个方法了吧...

总结

以上就是本文关于java中imagereader和bufferedimage获取图片尺寸实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网