java - 如何使用 BufferedImage 更改图像上文本的颜色?

标签 java graphics bufferedimage

使用 BufferedImage bgImage 我想为图像上的文本设置黑色。

BufferedImage bgImage = createBgImageForText();
bgImage.createGraphics().drawString(player.getPlayerName(), 25, 15);
if ("Y".equalsIgnoreCase(player.getCaptain())) {
    bgImage.createGraphics().setPaint(Color.BLACK);
} else {
    bgImage.createGraphics().setPaint(Color.WHITE);
}

mainImg.getGraphics().drawImage(bgImage, 10, 10, null);

但默认情况下文本始终为白色。 如何改变文字的颜色?

最佳答案

您需要存储使用 bgImage.createGraphics() 创建的 Graphics 实例,然后您可以在 绘制文本之前设置颜色:

BufferedImage bgImage = createBgImageForText();
Graphics2D g = bgImage.createGraphics();
if ("Y".equalsIgnoreCase(player.getCaptain())) {
    g.setPaint(Color.BLACK);
} else {
    g.setPaint(Color.WHITE);
}
g.drawString(player.getPlayerName(), 25, 15);
g.dispose();

关于java - 如何使用 BufferedImage 更改图像上文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269597/

相关文章:

java - Flume:来自下游的意外异常。 java.io.IOException:对等重置连接

java - 重新格式化 Java 源代码,使用行尾大括号代替下一行

Java Swing - 在不覆盖的情况下绘制 JPanel

android - 使用 YuvImage 压缩时出现奇怪的错误

java - BufferedImage 不会改变图像所有白色部分的颜色

java - 平滑 BufferImage 边缘

java - 使用 Hibernate @ManyToOne 关系将数据保存到 MySQL DB

java - 如何查找所有子节点的文本

javascript - 使用 Javascript-surface-plot 插入缺失数据

java - 光栅图像的 sRGB IEC61966-2.1 ColorModel