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

722 阅读2分钟

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

写在前面

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

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

欢迎大家关注这个专栏。

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

在上篇文章中也有说道,主要就是想要进行一个规范的整理和学习。

如果你正好在做相关的需求,那么一定能用得上。

Graphics2D是什么?

在之前文章中有提过,关注专栏去看看吧。

具体使用

在之前,我们也是说到了,Graphics2D是继承于Graphics类,所以有一些方法是来自于Graphics类。

image.png

先随便找一张图片,如下所示:

1.png

clearRect(int x, int y, int width, int height)

此方法,从名称上来看,就知道清除某一块区域的内容。

在使用上也是一样,我们可以从代码上试一下。

我这里有相关的代码示例如下。

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

生成新图片的效果:

image.png

clipRect(int x, int y, int width, int height)

此方法,则是裁剪方法了。

这里要说一下裁剪和清除方法的不同,裁剪是将图片的现有大小裁剪,而清除只是针对于内容,图片大小不变。

相关的代码示例如下:

InputStream inputStream = new FileInputStream("D:/1.png");
BufferedImage bufferedImage = ImageIO.read(inputStream);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.clipRect(200, 200, 200, 200);
ImageIO.write(bufferedImage,"png",new FileOutputStream("D:/3.png"));
copyArea(int x, int y, int width, int height, int dx, int dy)

此方法,为复制某一个区域,并且粘贴到指定的位置。

相关的代码示例如下:

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

小结

今天我们学习的这几个方法,主要是关于对已经存在的图片对象方法,一般都是在成型后的时候使用,虽然很基础,但却是绝对的重点。