Java——獲取圖片尺寸和大小
包括獲取本地圖片和遠端伺服器上的圖片的尺寸和大小,這裡分別使用 BufferedImage 和 ImageReader 來獲取圖片資訊,ImageReader 是通過從圖片源資訊中獲取圖片資訊,所以速度會更快。
獲取本地圖片資訊
BufferedImage
public static Map<String, Object> getImageInfo(String filePath) {
long startTime = System.currentTimeMillis();
Map<String, Object> imageInfoMap = new HashMap<>();
InputStream is = null;
try {
File file = new File(filePath);
is = new FileInputStream(file);
BufferedImage image = ImageIO.read(is);
imageInfoMap.put(IMAGE_SIZE, file.length());
imageInfoMap.put(IMAGE_WIDTH, image.getWidth());
imageInfoMap.put(IMAGE_HEIGHT, image.getHeight());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close(); // 關閉流
} catch (IOException e) {
logger.error("getImageInfo I/O exception " + e.getMessage(), e);
}
}
}
long endTime = System.currentTimeMillis();
logger.info("take time: " + (endTime-startTime));
return imageInfoMap;
}
ImageReader
public static void getImageInfoByImageReader(String filePath) {
long beginTime = new Date().getTime();
File file = new File(filePath);
try {
ImageReader reader = 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();
logger.info("使用[ImageReader]獲取圖片尺寸耗時:[" + (endTime - beginTime) + "]ms");
}
通過URL獲取圖片資訊
BufferedImage
public static void getImageInfoByUrl(String urlStr){
try{
URL url = new URL(urlStr);
URLConnection urlConnection = url.openConnection();
int length = urlConnection.getContentLength();
System.out.print("length: " + length);
if(length == -1){
System.out.print("image not exist");
}else{
BufferedImage sourceImg = ImageIO.read(url);
System.out.print("image width:" + sourceImg.getWidth());
System.out.print("image height:" + sourceImg.getHeight());
}
}catch (MalformedURLException e){
logger.info("url not right " + e.getMessage(), e);
}catch (IOException e){
logger.info("IOException " + e.getMessage(), e);
}
}
ImageReader
public static void getImageInfoByUrl(String urlStr){
try{
URL url = new URL(urlStr);
URLConnection urlConnection = url.openConnection();
int length = urlConnection.getContentLength();
System.out.print("length: " + length);
if(length == -1){
System.out.print("image not exist");
}else{
try(ImageInputStream in = ImageIO.createImageInputStream(urlConnection.getInputStream())){
final Iterator<ImageReader> readers = ImageIO.getImageReaders(in);
if (readers.hasNext()) {
ImageReader reader = readers.next();
try {
reader.setInput(in);
System.out.print(reader.getWidth(0) + "," + reader.getHeight(0));
} finally {
reader.dispose();
}
}
}
}
}catch (MalformedURLException e){
logger.info("url not right " + e.getMessage(), e);
}catch (IOException e){
logger.info("IOException " + e.getMessage(), e);
}
}
參考資料
相關文章
- 如何用JavaScript獲取圖片的真實尺寸大小JavaScript
- jquery獲取圖片的實際尺寸大小程式碼例項jQuery
- 用JavaScript獲取原始圖片尺寸JavaScript
- 成品直播原始碼,JAVA獲取圖片的寬、高和大小原始碼Java
- javascript如何獲取img圖片的尺寸JavaScript
- 獲取網路圖片的大小
- java開發_比較使用ImageReader和BufferedImage獲取圖片尺寸總結Java
- js如何獲取圖片的長寬尺寸JS
- js如何獲取圖片的真實尺寸JS
- PHP獲取圖片寬度高度、大小尺寸、圖片型別、用於佈局的img屬性PHP型別
- js獲取上傳圖片尺寸和格式程式碼例項JS
- jquery獲取圖片的真實大小jQuery
- JavaScript獲取圖片的真實大小JavaScript
- 獲取img圖片原始尺寸程式碼例項
- 通過url獲取圖片尺寸的幾種方法:JS和phpJSPHP
- asp 獲取圖片的 大小 和畫素 ,解析度,以及壓縮圖片
- java 獲取物件大小Java物件
- kindeditor 上傳圖片 自動調整尺寸大小
- 圖片尺寸大小自適應程式碼例項
- 獲取app 圖片APP
- java調節圖片大小Java
- Java後臺Html轉圖片和獲取頁面屬性值,及圖片拼接JavaHTML
- 通過url動態獲取圖片大小方法總結
- win10桌面桌布尺寸怎麼調 設定圖片大小尺寸的方法Win10
- Java 獲取Word批註所標記的文字和圖片Java
- iOS開發之尺寸(二):仿寫App截圖獲取控制元件大小位置iOSAPP控制元件
- 谷歌瀏覽器下jquery無法獲取圖片的尺寸解決方案谷歌瀏覽器jQuery
- 整理獲取 viewport 和 element 尺寸和位置方法View
- Android 之 遠端圖片獲取和本地快取Android快取
- 獲取本地圖片/視訊地圖
- iOS 獲取視訊圖片iOS
- 【API】隨機獲取圖片API隨機
- IE瀏覽器下js無法獲取隱藏圖片尺寸簡單介紹瀏覽器JS
- javascript中獲取元素尺寸JavaScript
- Java 讀取PDF中的文字和圖片Java
- jQuery修改和獲取圖片的src屬性值jQuery
- javascript獲取圖片的真實寬度和高度JavaScript
- 獲取bitmap大小