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

How to change the Color of the text on image using 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();