Composition technique in this animation. : AlphaComposite « 2D Graphics « Java Tutorial






import java.awt.AlphaComposite;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class ImageComposite extends JPanel implements ActionListener {
  Image a = new ImageIcon(this.getClass().getResource("a.png")).getImage();
  Image b = new ImageIcon(this.getClass().getResource("b.png")).getImage();
  Timer timer = new Timer(800, this);
  float alpha = 1f;

  public ImageComposite() {
    timer.start();
  }

  public void paint(Graphics g) {
    super.paint(g);
    Graphics2D g2d = (Graphics2D) g;

    BufferedImage buffImg = new BufferedImage(200, 100, BufferedImage.TYPE_INT_ARGB);
    Graphics2D gbi = buffImg.createGraphics();

    AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha);

    gbi.drawImage(a, 40, 30, null);
    gbi.setComposite(ac);
    gbi.drawImage(b, 0, 0, null);

    g2d.drawImage(buffImg, 20, 20, null);
  }
  public void actionPerformed(ActionEvent e) {
    alpha -= 0.1;
    if (alpha <= 0) {
      alpha = 0;
      timer.stop();
    }
    repaint();
  }

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.add(new ImageComposite());
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 210);
    frame.setVisible(true);
  }

}








16.46.AlphaComposite
16.46.1.Composite Demo
16.46.2.Alpha Composite with BufferedImageAlpha Composite with BufferedImage
16.46.3.AlphaComposite.SRCAlphaComposite.SRC
16.46.4.AlphaComposite.SRC_OVERAlphaComposite.SRC_OVER
16.46.5.AlphaComposite.DST_OVERAlphaComposite.DST_OVER
16.46.6.AlphaComposite.SRC_INAlphaComposite.SRC_IN
16.46.7.AlphaComposite.DST_INAlphaComposite.DST_IN
16.46.8.AlphaComposite.SRC_OUTAlphaComposite.SRC_OUT
16.46.9.AlphaComposite.DST_OUTAlphaComposite.DST_OUT
16.46.10.Draw ten rectangles with different levels of transparency
16.46.11.Compositing is the combining of elements from separate sources into single images
16.46.12.Composition technique in this animation.