积跬步,聚小流------java获取图片的尺寸

在一篇文章中获取到通过例如以下两种方式进行获取:

1、使用ImageReader进行获取;

2、使用BufferedImage进行获取;

而且经过验证ImageReader进行操作的耗时远远低于BufferedImage操作的耗时,详情可查看链接查看原文

然后依据应用我自己在项目中略做修改,在这里记录下:

<span style="font-size:14px;">package com.jzba.utils;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

//获取图片的长宽尺寸
public class ImageUtil {

    /**
     * 源图片路径名称如:D:/zz/over.png
     */
    private String srcpath = "D:/zz/over.png";

    public ImageUtil() {

    }
    //进行本地验证
    public static void main(String[] args) throws Exception {
        ImageUtil util = new ImageUtil();
        util.getImageSizeByBufferedImage(util.getSrcpath());
    }
    //依据图片路径获取对应图片的尺寸
    public Map getSize(String srcPath){
    	ImageUtil util = new ImageUtil();
    	Map<String, Integer> map=util.getImageSizeByBufferedImage(util.getSrcpath());
    	return map;
    }

    /**
     * 使用ImageReader获取图片尺寸
     *
     * @param src
     *            源图片路径
     */
    public void getImageSizeByImageReader(String src) {
        long beginTime = new Date().getTime();
        File file = new File(src);
        try {
            Iterator<ImageReader> 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();
        }
        long endTime = new Date().getTime();
//      System.out.println("使用[ImageReader]获取图片尺寸耗时:[" + (endTime - beginTime)+"]ms");
    }

//    /**
//     * 使用BufferedImage获取图片尺寸
//     *
//     * @param src
//     *            源图片路径
//     */
//    public void getImageSizeByBufferedImage(String src) {
//        long beginTime = new Date().getTime();
//        File file = new File(src);
//        FileInputStream is = null;
//        try {
//            is = new FileInputStream(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();
//        }
//        long endTime = new Date().getTime();
//        System.out.println("使用[BufferedImage]获取图片尺寸耗时:[" + (endTime - beginTime)+"]ms");
//    }

    /**
     * 使用BufferedImage获取图片尺寸
     * @return Map<String,Integer> 返回map集合。包括长和宽
     * @param src
     *            源图片路径
     */
    public 	Map<String,Integer> getImageSizeByBufferedImage(String src) {
        File file = new File(src);
        FileInputStream is = null;
        Map<String,Integer> map=new HashMap<String, Integer>();
        try {
            is = new FileInputStream(file);
        } catch (FileNotFoundException e2) {
            e2.printStackTrace();
        }
        BufferedImage sourceImg = null;
        try {
            sourceImg = javax.imageio.ImageIO.read(is);
            map.put("width", sourceImg.getWidth());
            map.put("height", sourceImg.getHeight());
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return map;
    }

    public String getSrcpath() {
        return srcpath;
    }

    public void setSrcpath(String srcpath) {
        this.srcpath = srcpath;
    }

}</span>

依据以上方法,假设在方法中增加对应的System.out.println();则能够获得一下结果:

时间: 2024-10-28 05:24:11

积跬步,聚小流------java获取图片的尺寸的相关文章

积跬步,聚小流------java信息生成图片

需求: 是在做证书的时候碰到的这个问题. 当时需求是可以进行在线打印证书,第一次进行的操作是直接打印html,并且已经排好版(用jqprint插件)进行打印,在打印时碰到了兼容的问题,另外由于背景图片加载较文字加载的慢,则出现先加载文字后出现图片的现象,则显的很不专业,遂采用了将信息转化为图片,然后直接打印图片,不论怎么样进行打印,都不会改变,而且可以导出图片,对图片进行更为精细的操作. 代码编写: 先不多说 先上代码: package com.jzba.utils; import java.a

不积跬步无以至千里----高度自适应的textarea

在某个项目里面,有这样的一个小需求. textarea的高度自适应,当高度高于300px之后,textarea高度不再增高,出滚动条.当高度小于某个高度例如80px的时候,高度不再变小. 其实这个需求在很多地方都有出现过,例如微博的评论框,还有各种评论框. 谈不上什么有难度的技术,写下来当一个小插件积累. <!doctype html> <html> <head> <meta charset="utf-8"> <title>高

技术成长-不积跬步无以至千里

走在开发的道路上,你会发现越走路越长,越走路上的坑越多.本人是想在成长的道路上多踩一些坑的,踩的坑越多,遇到问题解决速度越快.坑多了,可能自己都记不住了,就需要记一记,有些时候你遇到的坑采用的解决办法并不是最优解,所有需要拿出来跟小伙伴一起分享分享你的经验. 记录到比如印象笔记或者有道云笔记里,或者自己的一个文件夹里,不过,个人经验,记在文件夹后很少有人再去看,还是记在印象笔记或者有道云笔记里,可以帮助自己随时翻看.现在的流程是重要的时候记录在有道云笔记上,做个索引,然后印象笔记记录的是我再找对

java 获取图片大小(尺寸)

1,获取本地图片大小(尺寸) File picture=new File(strSrc);BufferedImage sourceImg=ImageIO.read(new FileInputStream(picture)); sourceImg.getWidth(); sourceImg.getHeight(); 2,获取网络图片大小(尺寸) BufferedImage sourceImg=ImageIO.read(new URL(strSrc).openStream()); sourceImg

谷歌浏览器下jquery无法获取图片的尺寸解决方案

谷歌浏览器下jquery无法获取图片的尺寸解决方案: 本章节介绍一下在谷歌浏览器下利用jquery无法获取图片尺寸的现象,而在IE和火狐浏览器下能够正常获得,当然也不是任何时候都无法获取图片尺寸,下面就来介绍一下如何解决此问题. 代码如下: $(document).ready(function(){   var img_h=$img.height();    var img_w=$img.width();  }) 以上代码在IE和火狐中没有问题,但是在谷歌中可能会出现问题,之所以没货的尺寸就是因

如何解决谷歌浏览器下jquery无法获取图片的尺寸

代码如下: $(document).ready(function(){ var img_h=$img.height(); var img_w=$img.width(); }) 以上代码在IE和火狐中没有问题,但是在谷歌中可能会出现问题,之所以没货的尺寸就是因为图片没有加载完成. 修改方法如下: $(document).ready(function(){ $img.load(function(){ var img_h=$img.height(); var img_w=$img.width(); }

Java获取图片属性

BufferdImage bfi = ImageIO.read( new File(“d:/file/img.jpg”) ); //获取图片位深度 Int imgBit = bfi.getColorModel().getPixelSize(); //获取图片颜色模式 RGB CMYK等模式 bfi.getColorModel().getColorSpace().getType(); AE 的视频工程不能使用32位的图片 可以用画图工具打开 然后 保存为24位图片 也可以使用java转码图片 详细

js获取图片原始尺寸

如何获取图片的原始尺寸大小? 如下,当给 img 设置一个固定的大小时,要怎样获取图片的原始尺寸呢? #oImg{ width: 100px; height: 100px; } <img src="images/test.jpg" id="oImg" alt=""> HTML5提供了一个新属性 naturalWidth / naturalHeight 可以直接获取图片的原始宽高.这两个属性在Firefox/Chrome/Safari/

获取图片原始尺寸

前提:图片设置了别的width值 1.新建一个Image()对象,然后把图片的src赋给该对象 function getNaturalWidth(img) { var image = new Image() image.src = img.src var naturalWidth = image.width return naturalWidth } 2.HTML5提供了新属性,naturalWidth/naturalHeight可以直接获取图片的原始宽高. function getImgNat