Java中进行图像I/O(即读图片和写图片,不涉及到复杂图像处理)有三个方法:
如果你仅仅想读取常见格式的图片,不需要用JAI这么高级这么庞大的东西,用Java Image I/O API即可。
下面重点介绍Java中进行图像I/O的第一种方法 Java Image I/O API。
读取图片
源码介绍
public static BufferedImage read(File input) throws IOException
public static BufferedImage read(InputStream input) throws IOException
public static BufferedImage read(URL input) throws IOException
public static BufferedImage read(ImageInputStream stream) throws IOException
实际应用:获取图片的大小和尺寸
java获取图片的大小和尺寸,有两种获取的源:
第一种,获取本地图片的大小和尺寸
/**
* 本地获取
* */
@Test
public void testImg2() throws IOException{
File picture = new File("C:/Users/aflyun/Pictures/Camera Roll/1.jpg");
BufferedImage sourceImg =ImageIO.read(new FileInputStream(picture));
System.out.println(String.format("%.1f",picture.length()/1024.0));// 源图大小
System.out.println(sourceImg.getWidth()); // 源图宽度
System.out.println(sourceImg.getHeight()); // 源图高度
}
第二种,获取服务器图片的尺寸
/**
* 获取服务器上的
*/
@Test
public void getImg() throws FileNotFoundException, IOException{
URL url = new URL("http://img.mall.tcl.com/dev1/0/000/148/0000148235.fid");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
BufferedImage image = ImageIO.read(connection.getInputStream());
int srcWidth = image .getWidth(); // 源图宽度
int srcHeight = image .getHeight(); // 源图高度
System.out.println("srcWidth = " + srcWidth);
System.out.println("srcHeight = " + srcHeight);
}
/**
* 获取服务器上的
*/
@Test
public void testImg1() throws IOException{
InputStream murl = new URL("http://img.mall.tcl.com/dev1/0/000/148/0000148235.fid").openStream();
BufferedImage sourceImg =ImageIO.read(murl);
System.out.println(sourceImg.getWidth()); // 源图宽度
System.out.println(sourceImg.getHeight()); // 源图高度
}
写图片
BufferedImage bi;
File f = new File(“c:\images\myimage.png”);
ImageIO.write(im, “png”, f);
参考来源于: