java中ImageReader和BufferedImage获取图片尺寸实例
程序员文章站
2023-12-19 19:38:22
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获取图片尺寸实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!