Java图片处理Graphics2D使用教程(三)

404 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情

写在前面

最近几天忽然发现关于Graphics2D的详细使用比较少,正好这两天在搞Java操作图片的相关需求。

顺便整理一下Graphics2D相关的API方法,希望能帮到一些朋友。

欢迎大家关注这个专栏。

为什么要写一个Graphics2D使用教程?

  1. 规范整理

  2. 学习留存

  3. 知识点积累

具体使用

昨天我们看了Graphics类中的裁剪、复制、清除方法。

今天就让我们一起来看一下绘制的相关方法,这才是最核心的,因为每个操作图片最终都是要通过绘制来得到一个成品的。

绘制方法,在该类中都是由draw单词开头的,接下来就是绘制图片的众多方法了。

本次使用的图片如下:

cat.jpg

drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)

该方法主要就是用来绘制圆形形状,可以在一个图片上画上一个圆。

如果你需要海报上有一个圆形的头像,这个方法可能会帮到你。

代码示例:

InputStream inputStream = new FileInputStream("D:/cat.jpg");
BufferedImage bufferedImage = ImageIO.read(inputStream);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawArc(200, 200, 200, 200, 2000, 2000);
ImageIO.write(bufferedImage,"png",new FileOutputStream("D:/3.png"));

生成图片的效果:(找不同,哈哈哈)

image.png

drawBytes(byte[] data, int offset, int length, int x, int y)

该方法是将字节数组的内容绘制到图片上,我原本以为字节流转成的字节数组可以自动转成图片填充上去。

结果不是,就是单纯的将字节数组的内容放上去。

代码:

InputStream inputStream = new FileInputStream("D:/cat.jpg");
InputStream inputStream1 = new FileInputStream("D:/1.png");
BufferedImage bufferedImage = ImageIO.read(inputStream);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawBytes(toByteArray(inputStream1), 200, 200, 200, 200);
ImageIO.write(bufferedImage, "png", new FileOutputStream("D:/3.png"));

生成图片的效果:

image.png

drawChars(char[] data, int offset, int length, int x, int y)

该方法是将Char字符数组填充到指定的位置。

和上面的draw方法一样,没什么特别的,大家可以自行试一下。

小结

今天我们一起来学习了三个方法,分别是绘制方法中的绘制圆形、绘制字节、绘制字符,希望能帮助到大家。