1 /** 2 * 3 */ 4 package com.b510; 5 6 import java.awt.image.BufferedImage; 7 import java.io.File; 8 import java.io.FileInputStream; 9 import java.io.FileNotFoundException;10 import java.io.IOException;11 import java.util.Date;12 import java.util.Iterator;13 14 import javax.imageio.ImageIO;15 import javax.imageio.ImageReader;16 import javax.imageio.stream.ImageInputStream;17 18 public class ImageUtil {19 20 /**21 * 源圖片路徑名稱如:c:/1.jpg22 */23 private String srcpath = "e:/pool.jpg";24 25 public ImageUtil() {26 27 }28 29 public static void main(String[] args) throws Exception {30 ImageUtil util = new ImageUtil();31 util.getImageSizeByImageReader(util.getSrcpath());32 util.getImageSizeByBufferedImage(util.getSrcpath());33 }34 35 /**36 * 使用ImageReader獲取圖片尺寸37 * 38 * @param src39 * 源圖片路徑40 */41 public void getImageSizeByImageReader(String src) {42 long beginTime = new Date().getTime();43 File file = new File(src);44 try {45 Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpg");46 ImageReader reader = (ImageReader) readers.next();47 ImageInputStream iis = ImageIO.createImageInputStream(file);48 reader.setInput(iis, true);49 System.out.println("width:" + reader.getWidth(0));50 System.out.println("height:" + reader.getHeight(0));51 } catch (IOException e) {52 e.printStackTrace();53 }54 long endTime = new Date().getTime();55 System.out.println("使用[ImageReader]獲取圖片尺寸耗時:[" + (endTime - beginTime)+"]ms");56 }57 58 /**59 * 使用BufferedImage獲取圖片尺寸60 * 61 * @param src62 * 源圖片路徑63 */64 public void getImageSizeByBufferedImage(String src) {65 long beginTime = new Date().getTime();66 File file = new File(src);67 FileInputStream is = null;68 try {69 is = new FileInputStream(file);70 } catch (FileNotFoundException e2) {71 e2.printStackTrace();72 }73 BufferedImage sourceImg = null;74 try {75 sourceImg = javax.imageio.ImageIO.read(is);76 System.out.println("width:" + sourceImg.getWidth());77 System.out.println("height:" + sourceImg.getHeight());78 } catch (IOException e1) {79 e1.printStackTrace();80 }81 long endTime = new Date().getTime();82 System.out.println("使用[BufferedImage]獲取圖片尺寸耗時:[" + (endTime - beginTime)+"]ms");83 }84 85 public String getSrcpath() {86 return srcpath;87 }88 89 public void setSrcpath(String srcpath) {90 this.srcpath = srcpath;91 }92 93 }java