# Polygon in Graphics2D löschen



## X-tian (27. Mrz 2009)

Hallo zusammen.

Mein Problem besteht darin, dass ich eine Grafik anzeigen muss, aus der aber noch verschiedene Bereiche ausgeschnitten d.h. teilweise Transparent gemacht werden müssen. 


```
Graphics2D tmp = (Graphics2D) geb[g].getGraphics();

tmp.setColor(new Color(0xaaff00ee,true));

tmp.drawImage(img,0,0,null);

Polygon p = new Polygon(new int[]{xv, xv + 13, xv + 13, xv, xv},
                                 new int[]{yv + 6, yv + 12, yv + 11 - diff, yv + 5 - diff,yv + 6}, 5);

             tmp.drawPolygon(p);
             tmp.fillPolygon(p);
```

Wie man vielleicht erkennen kann möchte ich innerhalb des Bildes halbtransparente bereiche einer bestimmten Farbe schaffen. Das problem ist jetzt, dass natürlich die bereiche über die ich das Polgon zeichne nicht transparent sind sind, sondern da ja Schon das bild liegt. Also muss ich es irgendwie hinbekommen entwerder die Form des Polygons aus dem Bild "Rauszulöschen" oder - und das wäre mir lieber -  es zu schaffe dass beim Zeichnen des Polygons die Pixel komplett überschrieben werden also so, dass das Polygon später noch halbdurchsichtig ist und das Bild dahinter verschwunden.

Ich hoffe ihr versteht was ich meine, und vielleicht weiß ja der ein oder andere wie man dieses Problem elegant lösen kann.


----------



## Marco13 (27. Mrz 2009)

So ganz... nicht... ???:L Wenn man ein Bild hat, und da z.B. ein Quadrat rausschneidet, und das Quadrat dann halbtransparent füllt, dann ist das gleichbedeutend damit, dass man dort ein (vollkommen UN-transparentes) Quadrat hinmalt, dessen Farbe eine Mischung aus der Farbe des Quadrates und der Hintergrundfarbe ist.
Das macht keinen Sinn.
Wenn du ein halbtransparentes Polygon über ein Bild malen willst, dann hättest du vermutlich gesagt: "Ich will ein halbtransparentes Polygon über ein Bild malen". Und dann hätte ich gesagt: Schau dir mal AlphaComposite (Java Platform SE 6) an. 
Aber das war's ja offenbar nicht...
???:L


----------



## X-tian (27. Mrz 2009)

naja also nicht ganz... denn das Graphics object hat nur nen transparenten hintergrund. Das ist wirklich schwer zu erklrären aber das Bild aus dem das Graphics2D objekt stammt wird später nochmals wo drübergelegt und dann soll von dort aus der hintergrund durch diese halbtransparenten löcher im bild scheinen... ist echt schwer zu verstehen, glaub ich. Also der hintergrund meines Bildes aus dem das G2D objekt stammt ist sowieso transparent. dann wird in die recht obere ecke ein Bild gezeichnet und dann will ich dass eine stelle in diesem bild wieder transparent wird. (bzw halbtransparent aber das tut ja weniger was zur sache) ich will sozusagen ein loch in die deckenden bereiche schneiden.

Oh gott ich kann sowas glaub nicht sehr einleuchtend erklären


----------



## X-tian (27. Mrz 2009)

Also gut danke  habs hinbekommen... der tip mit dem Alphacomposite hat mich auf die richtige Idee gebracht


----------



## Marco13 (27. Mrz 2009)

Ohja, sorry, dass das Graphics aus einem Bild stammt ist irgendwie nicht bis in mein Großhirn vorgedrungen... aber ... wenn's jetzt das gewünschte tut, ist's ja gut.


----------

