0

我正在尝试创建一个 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 设置,但我不确定哪个.. 非常感谢任何帮助。

4

1 回答 1

2

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

于 2012-04-18T16:20:40.967 回答