持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
写在前面
最近几天忽然发现关于Graphics2D的详细使用比较少,正好这两天在搞Java操作图片的相关需求。
顺便整理一下Graphics2D相关的API方法,希望能帮到一些朋友。
欢迎大家关注这个专栏。
为什么要写一个Graphics2D使用教程?
在上篇文章中也有说道,主要就是想要进行一个规范的整理和学习。
如果你正好在做相关的需求,那么一定能用得上。
Graphics2D是什么?
在之前文章中有提过,关注专栏去看看吧。
具体使用
在之前,我们也是说到了,Graphics2D是继承于Graphics类,所以有一些方法是来自于Graphics类。
先随便找一张图片,如下所示:
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"));
生成新图片的效果:
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"));
小结
今天我们学习的这几个方法,主要是关于对已经存在的图片对象方法,一般都是在成型后的时候使用,虽然很基础,但却是绝对的重点。