导出excel带水印:前置知识1 BufferedImage和ImageIO

13 篇文章 0 订阅

参考原文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();
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值