zoukankan      html  css  js  c++  java
  • java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结

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

     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("" + 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("" + 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 }

    运行结果:

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

  • 相关阅读:
    腾讯视频插入网页的代码;
    FW: 软件持续交付的诉求;
    TOGAF
    Windows WSL2 htop打开黑屏的问题解决
    requests.exceptions.ConnectionError: HTTPSConnectionPool(host='appts.xxx.com%20', port=443):
    sqlalchemy实现模糊查询
    jenkins过滤版本,可选择版本
    QML 布局之一:锚布局详解(各种例子)
    Qt Quick 常用控件:Button(按钮)用法及自定义
    The Common Order Operations of Dis Operation System (DOSS)
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_java_ImageReader_BufferedImage.html
Copyright © 2011-2022 走看看