# BufferedImage mit Transparenten Hintergrund



## Sengha (16. Sep 2009)

Wie kann ich ein BufferedImage mit einem Transparenten Hintergrund füllen? Ziel ist es, in dieses BufferedImage verschiedene zeichenoperationen zu zeichnen und es anschließend als Overlay über den Hintergrund zu legen.


----------



## 0x7F800000 (16. Sep 2009)

Typ TYPE_INT_ARGB angeben, und erstmal ein großes rechteck in der farbe [c]new Color(0,0,0,0)[/c] über das gesamte Bild zeichnen? Müsste klappen...


----------



## Sengha (16. Sep 2009)

Das habe ich schon versucht. Unmittelbar ach dem Erstellen des BufferedImage befindet sich das BufferedImage in dem benötigten Zustand, aber ich schaffe es nicht, den Hintergrund wieder mit Transparenz zu füllen


----------



## 0x7F800000 (16. Sep 2009)

Sengha hat gesagt.:


> Unmittelbar ach dem Erstellen des BufferedImage befindet sich das BufferedImage in dem benötigten Zustand


wunderbar, was willst du mehr?


> aber ich schaffe es nicht, den Hintergrund wieder mit Transparenz zu füllen


was heißt "wieder"? hab's eben ausprobiert: das bild ist von anfang an komplett transparent, und bleibt es auch, solange man nicht was anderes draufmalt... Verstehe das problem daher gar nicht.


----------



## Spacerat (16. Sep 2009)

Wie es aussieht, ein Problem mit Halbtransparenz. BufferedImage implementiert Transparency. Transparency hat unter anderem die Konstanten BITMASK und TRANSLUCENT, welche den BufferedImage-Konstanten TYPE_INT_ARGB und TYPE_INT_ARGB_PRE entsprechen. Und wenn man in der Dokumentation der Klasse Transparency folgendes liest:
	
	
	
	





```
/**
     * Represents image data that is guaranteed to be either completely
     * opaque, with an alpha value of 1.0, or completely transparent,
     * with an alpha value of 0.0.
     */
    public final static int BITMASK = 2;

    /**
     * Represents image data that contains or might contain arbitrary
     * alpha values between and including 0.0 and 1.0.
     */
    public final static int TRANSLUCENT        = 3;
```
ist TYPE_INT_ARGB_PRE die Lösung des Problems.


----------

