# durchsichtiges Bild nach clearRect



## millinär (25. Okt 2006)

wie kann ich ein bild durchsichtig machen
ein normales BufferedImage ist ja am anfang durchsichtig aber wenn 
clearRect macht wird das bild schwarz.

aber ich will das es durchsichtig ist wenn man auf clearRect geht.
so daß, das bild unter dem bild sichtbar ist.


----------



## André Uhres (25. Okt 2006)

```
graphics2D.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, OPACITY));
```


----------



## millinär (25. Okt 2006)

C:\Dokumente und Einstellungen\M\Eigene Dateien\java\comic\src\standartclassen\standart.java:44: cannot find symbol
symbol  : variable OPACITY

ich blicks nicht.


----------



## millinär (25. Okt 2006)

sorry ich hab mich ein bischen falsch ausgedrückt
eigentlich will ich  wissen wie ich ein bild komplett löschen kann so dass es durchsichtig ist und wie ich dann normal weiterzeichnen kann


----------



## The_S (25. Okt 2006)

Mal z. B. ein Durchsichtiges Rechteck drüber oder setze (je nach Verwendungsart) den Background durchsichtig. Den Grad der Transparenz bestimmst du beim erzeugen eines Color-Objekts mit dem 4. Parameter oder über Alpha.

Aber ich glaub die Methode von Andé ist auch net schlecht


----------



## millinär (25. Okt 2006)

Andres idee ist bestimmt sehr gut nur blick ich sie nicht so ganz
kann mir das vieleicht jemand erklären?

ich hab jetzt schon viel mit AlphaComposite rumexperimentiert aber ich bekomme nicht das ergebniss das ich mir wünsche.


----------



## The_S (25. Okt 2006)

Dann zeig doch mal was du experimentiert hast.


----------



## millinär (25. Okt 2006)

alle löschen:

```
g.setComposite(AlphaComposite.Clear);
g.fillRect(0,0,bi.getWidth(),bi.getHeight());
```

und jetzt wieder in den normalen modus:
(weil ich nicht weis welcher der normale ist 
hab ich alles ausprobiert)


```
g.setComposite(AlphaComposite.*);
```

aber das zeichnen danach hat nie so ganz funktioniert.


hab auch noch ein paar andere sachen ausprobiert z.b:
g.setComposite(AlphaComposite.Src);
g.setColor(0,0,0,0);
g.fillRect(0,0,bi.getWidth(),bi.getHeight());


----------



## millinär (26. Okt 2006)

```
package standartclassen;
import java.awt.*;
import java.awt.image.*;
/*
 * NewJFrame.java
 *
 * Created on 23. Oktober 2006, 21:09
 */

/**
 *
 * @author  M
 */
public class NewJFrame extends javax.swing.JFrame {
    
    /** Creates new form NewJFrame */
      Graphics2D g;
          Graphics2D gg[]=new Graphics2D[5];
       BufferedImage[] bi;
    public NewJFrame() {
        initComponents();
      g=(Graphics2D) this.getGraphics();
       bi=new BufferedImage[5];
    
        for (int i=0;i<bi.length;i++) {
            bi[i]=new BufferedImage(300,300,3);
          gg[i]=(Graphics2D) bi[i].getGraphics();
          gg[i].setComposite(AlphaComposite.Src);
 
        }
          g.setComposite(AlphaComposite.Src);
      jButton1ActionPerformed(null);
    }
    
    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc=" Generated Code ">                          
    private void initComponents() {
        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jButton1.setText("jButton1");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(71, 71, 71)
                .addComponent(jButton1)
                .addContainerGap(254, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(21, 21, 21)
                .addComponent(jButton1)
                .addContainerGap(256, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
// TODO add your handling code here:

gg[0].setColor(new Color(100,100,200));
gg[0].fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
gg[1].setColor(new Color(200,100,200));
gg[1].fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
gg[2].setColor(new Color(100,200,20));
gg[2].fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
  gg[3].setComposite(AlphaComposite.Clear);
gg[3].setColor(new Color(100,2,20,0));
gg[3].fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
 gg[2].drawImage(bi[3],30,30,new Color(5,5,255,0),null);
 gg[1].drawImage(bi[2],30,30,new Color(5,5,255,0),null);
 gg[0].drawImage(bi[1],30,30,new Color(5,5,255,0),null);

/*
 *

gg[0].clearRect(0,0,100,100);
g.setColor(new Color(100,100,20,0));
g.fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
gg[0].fillRect(0,0,100,bi[0].getHeight());
gg[0].setColor(new Color(100,100,20));
gg[0].fillRect(50,0,100,bi[0].getHeight());

g.setColor(new Color(100,10,20,0));
g.fillRect(0,0,bi[0].getWidth(),bi[0].getHeight());
gg[0].setColor(new Color(0,0,0));
gg[0].fillRect(0,0,bi[0].getWidth(),10);
 */
g.drawImage(bi[0],0,0,new Color(255,255,255,0),null);

    }                                        
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new NewJFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify                     
    public javax.swing.JButton jButton1;
    // End of variables declaration                   
    
}
```

das bi[3] sollte eigentlich durchsichtig sein aber es wird weiß angezeigt bitte helft mir


----------

