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

1,075 阅读2分钟

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

写在前面

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

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

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

主要是因为以往都没使用Java处理过图片,也是趁着这一次储备总结一些相关知识。

如果你也恰好需要,那么这个系列将会很适合你。

Graphics2D是什么?

Graphics2D提供了针对几何模型、数学坐标,以及对图片的颜色处理、文本布局调整编辑等多维度处理多种功能。

在处理图片的时候,这个类是必然要用到的基础类。

Graphics2D虽然提供了三种体系,分别是图形、图片、文字三种,但是我们本次只说图片和文字;图形这个体系现在使用的太少了,如果遇到的话,还是自己去翻翻API文档吧。

欢迎关注专栏,会分开几篇文章来写。

具体使用

首先Graphics2D是继承于Graphics类,所以有些方法就一并说了。

image.png

今天先来学习几个比较基础的方法,这几个方法在图片或者文字处理时都会用到。

fillRect(Graphics类)

此方法,用来填充矩形形状的底色。

比如我这里需要白色,那么就可以使用下面的代码:

BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
graphics2D.fillRect(0, 0, 310, 335);
ImageIO.write(image,"png",new FileOutputStream("D:/3.png"));

生成图片如下:

这里我没有全部填充,是为了辨别。

image.png

fillArc

此方法,用来填充矩形或者圆形状的底色,其实这里和我们平时见到的饼状图差不多。

如果你需要画出一个区域图来,这个可能会帮到你。

但是这个方法的使用程度比较低。

使用方式就是传参会变一下,具体代码如下:

BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
graphics2D.fillArc(0, 0, 500, 500, 10, 30);
ImageIO.write(image,"png",new FileOutputStream("D:/3.png"));

生成图片如下:

image.png

fillOval

此方法,用来在一个矩形区域中填充一个圆形底色。

代码如下:

BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
graphics2D.fillOval(0, 0, 500, 500);
ImageIO.write(image,"png",new FileOutputStream("D:/3.png"));

生成图片如下:

image.png

小结

今天这篇文章,主要是介绍填充底色的几个通用方法,其中fillRect方法最常用,因为目前很少有人使用Java来画一些图了。