AlphaComposite.SRC_IN : AlphaComposite « 2D Graphics « Java Tutorial






AlphaComposite.SRC_IN
import java.awt.AlphaComposite;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;
import java.awt.image.BufferedImage;

import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class AlphaCompositeSRCIN extends JFrame {
  public AlphaCompositeSRCIN() {
    getContentPane().add(new DrawingCanvas());
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(500,500);
    setVisible(true);
  }

  public static void main(String arg[]) {
    new AlphaCompositeSRCIN();
  }
}

class DrawingCanvas extends JPanel{
  float alphaValue = 1.0f;
  int compositeRule = AlphaComposite.SRC_IN;
  AlphaComposite ac;

  DrawingCanvas() {
    setSize(300, 300);
    setBackground(Color.white);
  }

  public void paint(Graphics g) {
    Graphics2D g2D = (Graphics2D) g;

    int w = getSize().width;
    int h = getSize().height;

    BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
    Graphics2D big = bi.createGraphics();

    ac = AlphaComposite.getInstance(compositeRule, alphaValue);

    big.setColor(Color.red);
    big.drawString("Destination", w / 4, h / 4);
    big.fill(new Ellipse2D.Double(0, h / 3, 2 * w / 3, h / 3));

    big.setColor(Color.blue);
    big.drawString("Source", 3 * w / 4, h / 4);

    big.setComposite(ac);
    big.fill(new Ellipse2D.Double(w / 3, h / 3, 2 * w / 3, h / 3));

    g2D.drawImage(bi, null, 0, 0);
  }
}








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.