ImageReader 对象通常由特定格式的服务提供者接口 (SPI) 类实例化。服务提供者类(例如 ImageReaderSpi 的实例)向 IIORegistry 注册,后者使用前者进行格式识别和表示可用格式 reader 和 writer。

BufferedImage子类描述具有可访问图像数据缓冲区的Image。BufferedImage由图像数据的ColorModel和Raster组成。Raster的SampleModel中band的数量和类型必须与ColorModel所要求的数量和类型相匹配,以表示其颜色和alpha分量。所有BufferedImage对象的左上角坐标都为(0,0)。因此,用来构造BufferedImage的任何Raster都必须满足:minX=0且minY=0。

多的不用说,上代码,大家伙儿看看

/**

*

*/

package com.b510;

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.Iterator;

import javax.imageio.ImageIO;

import javax.imageio.ImageReader;

import javax.imageio.stream.ImageInputStream;

public class ImageUtil {

/**

* 源图片路径名称如:c:/1.jpg

*/

private String srcpath = "e:/pool.jpg";

public ImageUtil() {

}

public static void main(String[] args) throws Exception {

ImageUtil util = new ImageUtil();

util.getImageSizeByImageReader(util.getSrcpath());

util.getImageSizeByBufferedImage(util.getSrcpath());

}

/**

* 使用ImageReader获取图片尺寸

*

* @param src

* 源图片路径

*/

public void getImageSizeByImageReader(String src) {

long beginTime = new Date().getTime();

File file = new File(src);

try {

Iterator 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");

}

public String getSrcpath() {

return srcpath;

}

public void setSrcpath(String srcpath) {

this.srcpath = srcpath;

}

}

运行结果:

大家可以很容易明白...应该选择哪个方法了吧...

总结

以上就是本文关于java中ImageReader和BufferedImage获取图片尺寸实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

imagereader java_java中ImageReader和BufferedImage获取图片尺寸实例相关推荐

  1. 图片加尺寸php代码,php获取图片尺寸(宽度,高度)_php

    本篇文章主要说明php获取图片尺寸(宽度,高度)的函数,即getimagesize()函数. 语法:array getimagesize( string filename [, array & ...

  2. php 获得图片大小,php获取图片尺寸(宽度,高度)

    本篇文章主要说明PHP获取图片尺寸(宽度,高度)的函数,即getimagesize()函数. 语法:array getimagesize( string filename [, array & ...

  3. php 验证网络图片尺寸,通过url获取图片尺寸的几种方法:JS和php

    首先是js的方法,通过new一个Image对象,设置src属性,并监听complete和onload事件,图片加载完成后输出图片的宽度和高度 function checkPicurl(url){ va ...

  4. python中值滤波去除椒盐噪声_python 中值滤波,椒盐去噪,图片增强实例

    受光照.气候.成像设备等因素的影响,灰度化后的图像存在噪声和模糊干扰,直接影响到下一步的文字识别,因此,需要对图像进行增强处理.图片预处理中重要一环就是椒盐去澡,通常用到中值滤波器进行处理,效果很好. ...

  5. php imagick手册,PHP中使用Imagick实现各种图片效果实例

    这篇文章主要介绍了PHP中使用Imagick实现各种图片效果实例,本文讲解了偏置图像.改变图片大 imagick是一个功能强大的图像处理库. 说是翻译 其实就是简要介绍imagick 的主要功能的或者 ...

  6. springboot中根据url地址获取图片

    application.yml中,配置路径: file:dir: /mnt/mfs-cli/gf/ //服务器地址#dir: E:\\Area\\anhui //本地地址在Controller文件中, ...

  7. Android 获取图片尺寸大小的方法

    一.获取图片大小有两张情况代码如下: package com.jhq.picdemo;import android.Manifest; import android.content.pm.Packag ...

  8. Android 获取图片尺寸大小

    文章目录 1.简介 2.功能实现 1)添加sd 卡读写权限 2).功能代码 3.log显示 4.不同位置获取图片的路径的转化 Bitmap 1) drawable 里面 2)assets 文件 3)S ...

  9. PHP中使用Imagick实现各种图片效果实例_php技巧

    imagick是一个功能强大的图像处理库. 说是翻译 其实就是简要介绍imagick 的主要功能的或者说是我觉得比较实用的功能函数的介绍 以及使用的例子. 因为本人的英语水平有限,所以采用比较通俗或者 ...

最新文章

  1. java读取本地文件_java 读取本地文件实例详解
  2. python之torchlight使用_为什么Python被誉为全世界最高效的编程语言?
  3. matlab中求三维中的多个体积,用matlab计算由下面2个几何体围成的体积: x^2+y^2+z^2=36,((x-4)/5)^2+((y-1)/3)^2+((z-2)/5)^2=1...
  4. 使用Spring boot,Thymeleaf,AngularJS从零开始构建一个新的Web应用程序-第3部分
  5. python导出dxf图_在PDMS中使用python直接生成管口方位图(开源分享第三集)
  6. 通过一个例子介绍 IDA pro 的简单使用
  7. poj_1442 Treap
  8. 优雅地减少redux请求样板代码
  9. ubuntu下有没有类似于imagewatch的软件_大家有没有什么好的app推荐下,学习的类似timing小众点的?...
  10. 【leetcode】链表题(python)
  11. 软件工程中的数据流图
  12. ios 销毁当前页面重新开启_iOS - 切换rootViewController时,销毁之前的控制器
  13. 证券交易所的运作系统
  14. 遥感科学与技术和计算机专业哪个好,遥感科学与技术专业就业方向及就业前景分析...
  15. 【APICloud系列|16】苹果开发者账号如何更改双重认证的手机号
  16. H5 百度高德地图导航
  17. 忍者必须死3 通关 服务器维护,忍者必须死3进不去怎么办 进不去解决方法详解[多图]...
  18. pyqt创建窗口没有句柄_史上最强之《Pyqt》写游戏
  19. 【分享贴】I2C无法访问ATEC508A加密芯片问题
  20. 微信公众平台测试账号的获取及开发使用【微信开发学习】

热门文章

  1. vue中在data中写入img地址 引入问题
  2. 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
  3. day10 Python 形参顺序
  4. 解决PHP导出大量数据时设置超链接的问题 --mxp
  5. GameObject.Find 使用技巧
  6. linux命令(32):free命令
  7. 服务器biosraid管理
  8. 函数定义的规范-电子书包
  9. Java入门教程[9天快速入门JAVA]
  10. flutter AnimatedPositionedDirectional 使用解析