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。
多的不用说,上代码,大家伙儿看看
java” id=”highlighter_332431″>
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | /** *  */packagecom.b510;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.util.Date;importjava.util.Iterator;importjavax.imageio.ImageIO;importjavax.imageio.ImageReader;importjavax.imageio.stream.ImageInputStream;publicclassImageUtil {    /**   * 源图片路径名称如:c:/1.jpg   */    privateString srcpath = "e:/pool.jpg";    publicImageUtil() {    }    publicstaticvoidmain(String[] args) throwsException {        ImageUtil util = newImageUtil();        util.getImageSizeByImageReader(util.getSrcpath());        util.getImageSizeByBufferedImage(util.getSrcpath());    }    /**   * 使用ImageReader获取图片尺寸   *    * @param src   *      源图片路径   */    publicvoidgetImageSizeByImageReader(String src) {        longbeginTime = newDate().getTime();        File file = newFile(src);        try{            Iterator 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();        }        longendTime = newDate().getTime();        System.out.println("使用[ImageReader]获取图片尺寸耗时:["  (endTime - beginTime) "]ms");    }    /**   * 使用BufferedImage获取图片尺寸   *    * @param src   *      源图片路径   */    publicvoidgetImageSizeByBufferedImage(String src) {        longbeginTime = newDate().getTime();        File file = newFile(src);        FileInputStream is = null;        try{            is = newFileInputStream(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();        }        longendTime = newDate().getTime();        System.out.println("使用[BufferedImage]获取图片尺寸耗时:["  (endTime - beginTime) "]ms");    }    publicString getSrcpath() {        returnsrcpath;    }    publicvoidsetSrcpath(String srcpath) {        this.srcpath = srcpath;    }} | 
运行结果:

大家可以很容易明白…应该选择哪个方法了吧…
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
    



















请登录后发表评论
注册
社交帐号登录