Java——获取图片尺寸和大小
来源:互联网 发布:杭州龙翔桥到淘宝城 编辑:程序博客网 时间:2024/06/04 00:39
包括获取本地图片和远程服务器上的图片的尺寸和大小,这里分别使用 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); } }
参考资料
java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结
1 0
- Java——获取图片尺寸和大小
- PHP高效获取远程图片尺寸和大小
- 获取图片尺寸大小
- java获取图片尺寸
- android 读取图片尺寸和大小
- 利用ASP获取设置图片尺寸大小
- 利用ASP获取设置图片尺寸大小
- ImageReader和BufferedImage获取图片尺寸
- IOS 改变图片尺寸和大小方法
- iOS开发——根据Url 获取图片尺寸
- java开发_比较使用ImageReader和BufferedImage获取图片尺寸总结
- 用JS检测图片尺寸和图片文件的大小
- iTunes Connect上传APP屏幕快照图片尺寸和屏幕分辨率大小
- 修改图片尺寸大小
- IOS各种图片尺寸大小
- png图片尺寸大小调整
- jquery校验图片尺寸,大小
- java基础—java获取图片的大小和尺寸(本地& 服务器)
- BeanFactory和ApplicationContext的介绍
- Windows 7+Sublime Text 3配置C/C++开发环境
- HDOJ--1865 1string +HDOJ--2504 A==B? +Problem B
- Effective C++
- Windows7系统如果安装&升级IE11浏览器
- Java——获取图片尺寸和大小
- 排序算法07:三向快速排序
- 3.分布式集群
- Spring AOP详解
- 多线程同步锁实现简单数据的同步输入与输出
- Python高级技巧之一
- 由中根序列和后根序列重建二叉树
- 最大流算法之ISAP
- Python基础知识(2)——格式化字符串