如何将动态创建的BufferedImage实例的背景设置为透明?

时间:2012-04-18 16:03:38

标签: java bufferedimage

我正在尝试创建一个BufferedImage实例,该实例包含一个特定颜色的圆角矩形,并且在其他任何地方都是透明的。

我使用以下代码创建图像

 private BufferedImage createChromImage() {
    BufferedImage I = new BufferedImage(350, 20, ColorSpace.TYPE_RGB);
    Graphics2D g2 = I.createGraphics();

    g2.setPaint(new GradientPaint(0, 0, Color.DARK_GRAY, 100,
              100, Color.BLUE, false));

    g2.fillRoundRect(0, 0, 350, 20, 10, 10);

    return I;
 }

我最终在黑色背景上看到一个圆角矩形,有一种方法可以让我在透明背景上得到它。我怀疑它需要一个不同的ColorSpace设置,但我不知道哪个..任何帮助都非常感激。

1 个答案:

答案 0 :(得分:2)

您不能在不支持透明度的图像中使用透明背景。 RGB是24位图像,没有透明度。相反,你想使用BufferedImage.TYPE_INT_ARGB作为BufferedImage构造函数的参数:这将为你提供一个alpha通道,这将允许透明。