首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结

java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结

作者头像
Hongten
发布2018-09-13 15:46:23
2.3K0
发布2018-09-13 15:46:23
举报
文章被收录于专栏:HongtenHongten

多的不用说,先上代码,大家伙儿看看

 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.jpg
22      */
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 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     }
57 
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     }
84 
85     public String getSrcpath() {
86         return srcpath;
87     }
88 
89     public void setSrcpath(String srcpath) {
90         this.srcpath = srcpath;
91     }
92 
93 }

运行结果:

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-11-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档