java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结
多的不用说,先上代码,大家伙儿看看
1 /**
3 */
4 package com.b510;
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;
14 import javax.imageio.ImageIO;
15 import javax.imageio.ImageReader;
16 import javax.imageio.stream.ImageInputStream;
18 public class ImageUtil {
20 /**
21 * 源图片路径名称如:c:/1.jpg
22 */
23 private String srcpath = "e:/pool.jpg";
25 public ImageUtil() {
27 }
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 }
35 /**
36 * 使用ImageReader获取图片尺寸
37 *
38 * @param src
39 * 源图片路径
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 }
58 /**
59 * 使用BufferedImage获取图片尺寸
60 *
61 * @param src
62 * 源图片路径
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 }
85 public String getSrcpath() {
86 return srcpath;
87 }