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

880 阅读2分钟

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

写在前面

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

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

欢迎大家关注这个专栏。

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

  1. 规范整理

  2. 学习留存

  3. 知识点积累

具体使用

今天我们来看一下drawImage的另外一个方法,也是Graphics2D类中提供的第二个专属方法。

但是今天重点不是这个方法,而是通过Graphics2D如何处理文本形式的内容。

drawImage(Image img, AffineTransform xform, ImageObserver obs)

此方法是关于绘制图形的一个方法,但确实是很不常用。

使用官方语言来说,其提供了仿射变换的功能。

使用通俗语言来说,其提供了将图像旋转、放大、放小的功能。

大家有兴趣自己去看吧,不常用的东西了解一下就可以了。

drawString(String str, int x, int y)

此方法是要向底板或者是图像上添加一个字符串。

很好理解,直接来看代码示例吧。

BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2D = image.createGraphics();
graphics2D.drawString("这是一个例子!", 200, 200);
ImageIO.write(image, "png", new FileOutputStream("D:/3.png"));

生成的图像效果:

image.png

drawString(String str, float x, float y)

不仅提供了整数的坐标位置,为了更精准的绘制,还提供了浮点型的坐标参数类型。

代码都是一样的,不过这个示例我们可以使用一个图片来进行测试。

InputStream inputStream = new FileInputStream("D:/cat.jpg");
BufferedImage bufferedImage = ImageIO.read(inputStream);
Graphics2D graphics2D = bufferedImage.createGraphics();
graphics2D.drawString("这是一个例子!", 100.5f, 100.5f);
ImageIO.write(bufferedImage, "png", new FileOutputStream("D:/3.png"));

生成的图像效果:

image.png

小结

今天我们讲述了Graphics2D的另外一个绘制图像的方法,但是这个方法并不常用。

但是另外两个绘制字符串的方法还是比较常用的,因为在使用Java生成海报这种需求上,绝对是要用到绘制文字方法的。