参考原文JAVA中BufferedImage、ImageIO、Graphics2D用法
BufferedImage
BufferedImage是其Image抽象类的实现类,是一个带缓冲区图像类,主要作用是将一幅图片加载到内存中(BufferedImage生成的图片在内存里有一个图像缓冲区,利用这个缓冲区我们可以很方便地操作这个图片),提供获得绘图对象、图像缩放、选择图像平滑度等功能,通常用来做图片大小变换、图片变灰、设置透明不透明等。
java将一幅图片输入输出:
// 将图片读入内存
String imgPath = "C://demo.jpg";
BufferedImage image = ImageIO.read( new FileInputStream(imgPath) );
// 保存图片
File outputfile = new File("save.png");
//这里是把BufferedImage写到文件里,我们项目用的是BufferedImage 与 byte[]转化
ImageIO.write(bufferedImage, "png", outputfile);
创建BufferedImage对象:(项目用到)
//指定宽高、创建带灰色的对象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_BYTE_GRAY);
//创建一个不带透明色的对象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
//创建一个带透明色的对象
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
BufferedImage 与 byte[] 数组的转换
BufferedImage –> byte[](项目用到)
/**
* format:图片格式,“gif"等;
* 如果目标为byte数组,则将其预设为ByteArrayOutputStream即可传入此方法,执行完后,只要toByteArray()即可获得byte[]
*/
ImageIO.write(BufferedImage image, String format, OutputStream out);
byte[] –> bufferedImage
ByteArrayInputStream in = new ByteArrayInputStream(byte[] b);
BufferedImage image = ImageIO.read(InputStream in);
BufferedImage 功能介绍
项目用到创建画笔对象(开始 Graphics2D 的使用)
BufferedImage bufferedImage = ImageIO.read(new File("c:\\test.jpg"));
// 获取图片的宽高
bufferedImage.getWidth();
bufferedImage.getHeight();
// 图片裁剪
bufferedImage.getSubimage(0, 0, 10, 10);
// 创建画笔对象
Graphics2D graphics = bufferedImage.createGraphics();