當(dāng)前位置:
首頁(yè) >
积跬步,聚小流------java获取图片的尺寸
發(fā)布時(shí)間:2023/12/13
41
生活家
生活随笔
收集整理的這篇文章主要介紹了
积跬步,聚小流------java获取图片的尺寸
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在一篇文章中獲取到通過(guò)例如以下兩種方式進(jìn)行獲取:
1、使用ImageReader進(jìn)行獲取;
2、使用BufferedImage進(jìn)行獲取;
而且經(jīng)過(guò)驗(yàn)證ImageReader進(jìn)行操作的耗時(shí)遠(yuǎn)遠(yuǎn)低于BufferedImage操作的耗時(shí),詳情可查看鏈接查看原文
然后依據(jù)應(yīng)用我自己在項(xiàng)目中略做修改,在這里記錄下:
<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;
//獲取圖片的長(zhǎng)寬尺寸
public class ImageUtil {
/**
* 源圖片路徑名稱如:D:/zz/over.png
*/
private String srcpath = "D:/zz/over.png";
public ImageUtil() {
}
//進(jìn)行本地驗(yàn)證
public static void main(String[] args) throws Exception {
ImageUtil util = new ImageUtil();
util.getImageSizeByBufferedImage(util.getSrcpath());
}
//依據(jù)圖片路徑獲取對(duì)應(yīng)圖片的尺寸
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]獲取圖片尺寸耗時(shí):[" + (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]獲取圖片尺寸耗時(shí):[" + (endTime - beginTime)+"]ms");
// }
/**
* 使用BufferedImage獲取圖片尺寸
* @return Map<String,Integer> 返回map集合。包括長(zhǎng)和寬
* @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>
依據(jù)以上方法,假設(shè)在方法中增加對(duì)應(yīng)的System.out.println();則能夠獲得一下結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的积跬步,聚小流------java获取图片的尺寸的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: legend3---阿里云添加 CNAM
- 下一篇: 解决mendix本地运行登录的用户和密码