持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第24天,点击查看活动详情
写在前面
最近几天忽然发现关于Graphics2D的详细使用比较少,正好这两天在搞Java操作图片的相关需求。
顺便整理一下Graphics2D相关的API方法,希望能帮到一些朋友。
欢迎大家关注这个专栏。
为什么要写一个Graphics2D使用教程?
-
规范整理
-
学习留存
-
知识点积累
具体使用
今天我们来看一下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"));
生成的图像效果:
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"));
生成的图像效果:
小结
今天我们讲述了Graphics2D的另外一个绘制图像的方法,但是这个方法并不常用。
但是另外两个绘制字符串的方法还是比较常用的,因为在使用Java生成海报这种需求上,绝对是要用到绘制文字方法的。