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のコンストラクターへの引数として使用する必要があります。これにより、使用できるアルファチャネルが提供され、透明性が確保されます。

于 2012-04-18T16:20:40.967 に答える