欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-17 11:37:16
imagereader 对象通常由特定格式的服务提供者接口 (spi) 类实例化。服务提供者类(例如 imagereaderspi 的实例)向 iioregistry 注册...

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获取图片尺寸实例

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

总结

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

上一篇:

下一篇: