## org.apache.batik.ext.awt.image
Class CompositeRule

    java.lang.Object
      org.apache.batik.ext.awt.image.CompositeRule

All Implemented Interfaces:
  java.io.Serializable

public final class CompositeRule
extends java.lang.Object
implements java.io.Serializable

This is a typesafe enumeration of the standard Composite rules for the CompositeRable operation. (over, in, out, atop, xor, arith)

See Also:
  Serialized Form

Field Summary
`static CompositeRule` `ATOP` Porter-Duff Source Atop Destination rule.
`static CompositeRule` `DARKEN` FeBlend Darken rule.
`static CompositeRule` `IN` Porter-Duff Source In Destination rule.
`static CompositeRule` `LIGHTEN` FeBlend Lighten rule.
`static CompositeRule` `MULTIPLY` FeBlend Multiply rule.
`static CompositeRule` `OUT` Porter-Duff Source Out Destination rule.
`static CompositeRule` `OVER` Porter-Duff Source Over Destination rule.
`static int` `RULE_ARITHMETIC` Arithmatic rule 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4'.
`static int` `RULE_ATOP` Porter-Duff src atop rule.
`static int` `RULE_DARKEN` SVG feBlend Darken rule
`static int` `RULE_IN` Porter-Duff src in rule.
`static int` `RULE_LIGHTEN` SVG feBlend Lighten rule
`static int` `RULE_MULTIPLY` SVG feBlend Multiply rule
`static int` `RULE_OUT` Porter-Duff src out rule.
`static int` `RULE_OVER` Porter-Duff src over rule, also used for feBlend `normal`.
`static int` `RULE_SCREEN` SVG feBlend Screen rule
`static int` `RULE_XOR` Porter-Duff src xor rule.
`static CompositeRule` `SCREEN` FeBlend Screen rule.
`static CompositeRule` `XOR` Xor rule.

Method Summary
`static CompositeRule` `ARITHMETIC(float k1, float k2, float k3, float k4)` Factory to create artithmatic CompositeRules.
`float[]` `getCoefficients()`
`int` `getRule()` Returns the type of this composite rule
`java.lang.String` `toString()` This is called by the serialization code before it returns an unserialized object.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### RULE_OVER

    public static final int RULE_OVER

  Porter-Duff src over rule, also used for feBlend `normal`.

  See Also:
    Constant Field Values

### RULE_IN

    public static final int RULE_IN

  Porter-Duff src in rule.

  See Also:
    Constant Field Values

### RULE_OUT

    public static final int RULE_OUT

  Porter-Duff src out rule.

  See Also:
    Constant Field Values

### RULE_ATOP

    public static final int RULE_ATOP

  Porter-Duff src atop rule.

  See Also:
    Constant Field Values

### RULE_XOR

    public static final int RULE_XOR

  Porter-Duff src xor rule.

  See Also:
    Constant Field Values

### RULE_ARITHMETIC

    public static final int RULE_ARITHMETIC

  Arithmatic rule 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4'.

  See Also:
    Constant Field Values

### RULE_MULTIPLY

    public static final int RULE_MULTIPLY

  SVG feBlend Multiply rule

  See Also:
    Constant Field Values

### RULE_SCREEN

    public static final int RULE_SCREEN

  SVG feBlend Screen rule

  See Also:
    Constant Field Values

### RULE_DARKEN

    public static final int RULE_DARKEN

  SVG feBlend Darken rule

  See Also:
    Constant Field Values

### RULE_LIGHTEN

    public static final int RULE_LIGHTEN

  SVG feBlend Lighten rule

  See Also:
    Constant Field Values

### OVER

    public static final CompositeRule OVER

  Porter-Duff Source Over Destination rule. The source is composited over the destination.

        Fs = 1 and Fd = (1-As), thus:

              Cd = Cs + Cd*(1-As)
              Ad = As + Ad*(1-As)

### IN

    public static final CompositeRule IN

  Porter-Duff Source In Destination rule. The part of the source lying inside of the destination replaces the destination.

        Fs = Ad and Fd = 0, thus:

              Cd = Cs*Ad
              Ad = As*Ad

### OUT

    public static final CompositeRule OUT

  Porter-Duff Source Out Destination rule. The part of the source lying outside of the destination replaces the destination.

        Fs = (1-Ad) and Fd = 0, thus:

              Cd = Cs*(1-Ad)
              Ad = As*(1-Ad)

### ATOP

    public static final CompositeRule ATOP

  Porter-Duff Source Atop Destination rule. The part of the source lying inside of the destination replaces the destination, destination remains outside of source.

        Fs = Ad and Fd = (1-As), thus:

              Cd = Cs*Ad + Cd*(1-As)
              Ad = As*Ad + Ad*(1-As)

### XOR

    public static final CompositeRule XOR

  Xor rule. The source and destination are Xor'ed togeather.

        Fs = (1-Ad) and Fd = (1-As), thus:

              Cd = Cs*(1-Ad) + Cd*(1-As)
              Ad = As*(1-Ad) + Ad*(1-As)

### MULTIPLY

    public static final CompositeRule MULTIPLY

  FeBlend Multiply rule.

              Cd = Cs*(1-Ad) + Cd*(1-As) + Cs*Cd
              Ad = 1 - (1-Ad)*(1-As)

### SCREEN

    public static final CompositeRule SCREEN

  FeBlend Screen rule.

              Cd = Cs + Cd - Cs*Cd
              Ad = 1 - (1-Ad)*(1-As)

### DARKEN

    public static final CompositeRule DARKEN

  FeBlend Darken rule.

              Cd = Min(Cs*(1-Ad) + Cd,
                       Cd*(1-As) + Cs)
              Ad = 1 - (1-Ad)*(1-As)

### LIGHTEN

    public static final CompositeRule LIGHTEN

  FeBlend Lighten rule.

              Cd = Max(Cs*(1-Ad) + Cd,
                       Cd*(1-As) + Cs)
              Ad = 1 - (1-Ad)*(1-As)

Method Detail

### ARITHMETIC

    public static CompositeRule ARITHMETIC(float k1,
                                           float k2,
                                           float k3,
                                           float k4)

  Factory to create artithmatic CompositeRules. 'out = k1*i1*i2 + k2*i1 + k3*i2 + k4' Note that arithmatic CompositeRules are not singletons.

### getRule

    public int getRule()

  Returns the type of this composite rule

### getCoefficients

    public float[] getCoefficients()

### toString

    public java.lang.String toString()

  This is called by the serialization code before it returns an unserialized object. To provide for unicity of instances, the instance that was read is replaced by its static equivalent. See the serialiazation specification for further details on this method's logic.

Copyright © 2004 Apache Software Foundation. All Rights Reserved.