我正在尝试创建一个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设置,但我不知道哪个..任何帮助都非常感激。
答案 0 :(得分:2)
您不能在不支持透明度的图像中使用透明背景。 RGB是24位图像,没有透明度。相反,你想使用BufferedImage.TYPE_INT_ARGB作为BufferedImage构造函数的参数:这将为你提供一个alpha通道,这将允许透明。