积跬步,聚小流------java获取图片的尺寸
生活随笔
收集整理的這篇文章主要介紹了
积跬步,聚小流------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("" + 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("" + 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();則能夠獲得一下結果:
總結
以上是生活随笔為你收集整理的积跬步,聚小流------java获取图片的尺寸的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: legend3---阿里云添加 CNAM
- 下一篇: 解决mendix本地运行登录的用户和密码