1. 图像处理
关键类
- 图形:Graph
- java.awt 包
- Java 2D库: Graphics2D, Line2D, Rectangle2D, Ellipse2D,Arc2D
- Color, Stroke
- 图像:Image
- javax.imageio包
- ImageIO, BufferedImage, ImageReader, ImageWriter
关键类描述
Java原生支持jpg, png, bmp, wbmp, gif
- javax.imageio.ImageIO
- 自动封装多种ImageReader和ImageWriter,读写图像文件
- read 读取图片 write 写图片
- java.awt.image.BufferedImage,图像在内存中的表示类
- getHeight 获取高度
- getWidth 获取宽度
- 图像文件读写/截取/合并
图片读写
1 2 3 4 5 6 7 8 9 10 11
| BufferedImage image = ImageIO.read(new File("c:/temp/ecnu.jpg"));
Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpg"); ImageReader reader = (ImageReader) readers.next(); ImageInputStream iis = ImageIO.createImageInputStream(new File("c:/temp/ecnu.jpg")); reader.setInput(iis, true);
ImageIO.write(image, "png", new File("c:/temp/ecnu.png"));
|
获取基础属性
1 2
| System.out.println("Height: " + image.getHeight()); System.out.println("Width: " + image.getWidth());
|
图像切割
1 2 3 4 5 6 7
| ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(x, y, width, height); param.setSourceRegion(rect);
BufferedImage bi = reader.read(0, param);
|
RGB
1 2 3 4 5 6
| int[] firstRGB = new int[width1*height1]; firstRGB = imageOne.getRGB(0,0,width1,height1,firstRGB,0,width1);
imageNew.setRGB(0,0,width1,height1,firstRGB,0,width1);
|
统计图生成