Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/media/effect/EffectFactory#constants) \| [Methods](https://developer.android.com/reference/android/media/effect/EffectFactory#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/media/effect/EffectFactory#inhmethods)

# EffectFactory

*** ** * ** ***

` public class EffectFactory `   
` extends https://developer.android.com/reference/java/lang/Object ` ` `

|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||
| ↳ | android.media.effect.EffectFactory |

<br />

*** ** * ** ***

<br />

The EffectFactory class defines the list of available Effects, and provides functionality to inspect and instantiate them. Some effects may not be available on all platforms, so before creating a certain effect, the application should confirm that the effect is supported on this platform by calling `https://developer.android.com/reference/android/media/effect/EffectFactory#isEffectSupported(java.lang.String)`.

<br />

## Summary

| ### Constants ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_AUTOFIX` <br /> Attempts to auto-fix the image based on histogram equalization. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_BACKDROPPER` <br /> Replaces the background of the input frames with frames from a selected video. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_BITMAPOVERLAY` <br /> Overlays a bitmap (with premultiplied alpha channel) onto the input image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_BLACKWHITE` <br /> Adjusts the range of minimal and maximal color pixel intensities. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_BRIGHTNESS` <br /> Adjusts the brightness of the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_CONTRAST` <br /> Adjusts the contrast of the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_CROP` <br /> Crops an upright rectangular area from the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_CROSSPROCESS` <br /> Applies a cross process effect on image, in which the red and green channels are enhanced while the blue channel is restricted. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_DOCUMENTARY` <br /> Applies black and white documentary style effect on image.. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_DUOTONE` <br /> Representation of photo using only two color tones. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_FILLLIGHT` <br /> Applies back-light filling to the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_FISHEYE` <br /> Applies a fisheye lens distortion to the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_FLIP` <br /> Flips image vertically and/or horizontally. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_GRAIN` <br /> Applies film grain effect to image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_GRAYSCALE` <br /> Converts image to grayscale. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_LOMOISH` <br /> Applies lomo-camera style effect to image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_NEGATIVE` <br /> Inverts the image colors. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_POSTERIZE` <br /> Applies posterization effect to image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_REDEYE` <br /> Removes red eyes on specified region. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_ROTATE` <br /> Rotates the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_SATURATE` <br /> Adjusts color saturation of image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_SEPIA` <br /> Converts image to sepia tone. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_SHARPEN` <br /> Sharpens the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_STRAIGHTEN` <br /> Rotates the image according to the specified angle, and crops the image so that no non-image portions are visible. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_TEMPERATURE` <br /> Adjusts color temperature of the image. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_TINT` <br /> Tints the photo with specified color. |
| `https://developer.android.com/reference/java/lang/String` | `https://developer.android.com/reference/android/media/effect/EffectFactory#EFFECT_VIGNETTE` <br /> Adds a vignette effect to image, i.e. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/media/effect/Effect` | ` https://developer.android.com/reference/android/media/effect/EffectFactory#createEffect(java.lang.String)(https://developer.android.com/reference/java/lang/String effectName) ` Instantiate a new effect with the given effect name. |
| ` static boolean` | ` https://developer.android.com/reference/android/media/effect/EffectFactory#isEffectSupported(java.lang.String)(https://developer.android.com/reference/java/lang/String effectName) ` Check if an effect is supported on this platform. |

### Inherited methods

From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.

## Constants

### EFFECT_AUTOFIX

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_AUTOFIX
```

<br />

Attempts to auto-fix the image based on histogram equalization.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The scale of the adjustment. | Float, between 0 and 1. Zero means no adjustment, while 1 indicates the maximum amount of adjustment. |

<br />

<br />

Constant Value: "android.media.effect.effects.AutoFixEffect"

### EFFECT_BACKDROPPER

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_BACKDROPPER
```

<br />

Replaces the background of the input frames with frames from a selected video. Requires an initial learning period with only the background visible before the effect becomes active. The effect will wait until it does not see any motion in the scene before learning the background and starting the effect.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `source` | A URI for the background video to use. This parameter must be supplied before calling apply() for the first time. | String, such as from `https://developer.android.com/reference/android/net/Uri#toString()` |

If the update listener is set for this effect using `https://developer.android.com/reference/android/media/effect/Effect#setUpdateListener(android.media.effect.EffectUpdateListener)`, it will be called when the effect has finished learning the background, with a null value for the info parameter.

<br />

<br />

Constant Value: "android.media.effect.effects.BackDropperEffect"

### EFFECT_BITMAPOVERLAY

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_BITMAPOVERLAY
```

<br />

Overlays a bitmap (with premultiplied alpha channel) onto the input image. The bitmap is stretched to fit the input image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `bitmap` | The overlay bitmap. | A non-null Bitmap instance. |

<br />

<br />

Constant Value: "android.media.effect.effects.BitmapOverlayEffect"

### EFFECT_BLACKWHITE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_BLACKWHITE
```

<br />

Adjusts the range of minimal and maximal color pixel intensities.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `black` | The value of the minimal pixel. | Float, between 0 and 1. |
| `white` | The value of the maximal pixel. | Float, between 0 and 1. |

<br />

<br />

Constant Value: "android.media.effect.effects.BlackWhiteEffect"

### EFFECT_BRIGHTNESS

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_BRIGHTNESS
```

<br />

Adjusts the brightness of the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `brightness` | The brightness multiplier. | Positive float. 1.0 means no change; larger values will increase brightness. |

<br />

<br />

Constant Value: "android.media.effect.effects.BrightnessEffect"

### EFFECT_CONTRAST

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_CONTRAST
```

<br />

Adjusts the contrast of the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `contrast` | The contrast multiplier. | Float. 1.0 means no change; larger values will increase contrast. |

<br />

<br />

Constant Value: "android.media.effect.effects.ContrastEffect"

### EFFECT_CROP

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_CROP
```

<br />

Crops an upright rectangular area from the image. If the crop region falls outside of the image bounds, the results are undefined.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `xorigin` | The origin's x-value. | Integer, between 0 and width of the image. |
| `yorigin` | The origin's y-value. | Integer, between 0 and height of the image. |
| `width` | The width of the cropped image. | Integer, between 1 and the width of the image minus xorigin. |
| `height` | The height of the cropped image. | Integer, between 1 and the height of the image minus yorigin. |

<br />

<br />

Constant Value: "android.media.effect.effects.CropEffect"

### EFFECT_CROSSPROCESS

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_CROSSPROCESS
```

<br />

Applies a cross process effect on image, in which the red and green channels are enhanced while the blue channel is restricted.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.CrossProcessEffect"

### EFFECT_DOCUMENTARY

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_DOCUMENTARY
```

<br />

Applies black and white documentary style effect on image..

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.DocumentaryEffect"

### EFFECT_DUOTONE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_DUOTONE
```

<br />

Representation of photo using only two color tones.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `first_color` | The first color tone. | Integer, representing an ARGB color with 8 bits per channel. May be created using `https://developer.android.com/reference/android/graphics/Color` class. |
| `second_color` | The second color tone. | Integer, representing an ARGB color with 8 bits per channel. May be created using `https://developer.android.com/reference/android/graphics/Color` class. |

<br />

<br />

Constant Value: "android.media.effect.effects.DuotoneEffect"

### EFFECT_FILLLIGHT

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_FILLLIGHT
```

<br />

Applies back-light filling to the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `strength` | The strength of the backlight. | Float, between 0 and 1. Zero means no change. |

<br />

<br />

Constant Value: "android.media.effect.effects.FillLightEffect"

### EFFECT_FISHEYE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_FISHEYE
```

<br />

Applies a fisheye lens distortion to the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The scale of the distortion. | Float, between 0 and 1. Zero means no distortion. |

<br />

<br />

Constant Value: "android.media.effect.effects.FisheyeEffect"

### EFFECT_FLIP

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_FLIP
```

<br />

Flips image vertically and/or horizontally.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `vertical` | Whether to flip image vertically. | Boolean |
| `horizontal` | Whether to flip image horizontally. | Boolean |

<br />

<br />

Constant Value: "android.media.effect.effects.FlipEffect"

### EFFECT_GRAIN

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_GRAIN
```

<br />

Applies film grain effect to image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `strength` | The strength of the grain effect. | Float, between 0 and 1. Zero means no change. |

<br />

<br />

Constant Value: "android.media.effect.effects.GrainEffect"

### EFFECT_GRAYSCALE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_GRAYSCALE
```

<br />

Converts image to grayscale.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.GrayscaleEffect"

### EFFECT_LOMOISH

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_LOMOISH
```

<br />

Applies lomo-camera style effect to image.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.LomoishEffect"

### EFFECT_NEGATIVE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_NEGATIVE
```

<br />

Inverts the image colors.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.NegativeEffect"

### EFFECT_POSTERIZE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_POSTERIZE
```

<br />

Applies posterization effect to image.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.PosterizeEffect"

### EFFECT_REDEYE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_REDEYE
```

<br />

Removes red eyes on specified region.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `centers` | Multiple center points (x, y) of the red eye regions. | An array of floats, where (f\[2\*i\], f\[2\*i+1\]) specifies the center of the i'th eye. Coordinate values are expected to be normalized between 0 and 1. |

<br />

<br />

Constant Value: "android.media.effect.effects.RedEyeEffect"

### EFFECT_ROTATE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_ROTATE
```

<br />

Rotates the image. The output frame size must be able to fit the rotated version of the input image. Note that the rotation snaps to a the closest multiple of 90 degrees.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `angle` | The angle of rotation in degrees. | Integer value. This will be rounded to the nearest multiple of 90. |

<br />

<br />

Constant Value: "android.media.effect.effects.RotateEffect"

### EFFECT_SATURATE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_SATURATE
```

<br />

Adjusts color saturation of image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The scale of color saturation. | Float, between -1 and 1. 0 means no change, while -1 indicates full desaturation, i.e. grayscale. |

<br />

<br />

Constant Value: "android.media.effect.effects.SaturateEffect"

### EFFECT_SEPIA

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_SEPIA
```

<br />

Converts image to sepia tone.

Available parameters: None

<br />

<br />

Constant Value: "android.media.effect.effects.SepiaEffect"

### EFFECT_SHARPEN

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_SHARPEN
```

<br />

Sharpens the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The degree of sharpening. | Float, between 0 and 1. 0 means no change. |

<br />

<br />

Constant Value: "android.media.effect.effects.SharpenEffect"

### EFFECT_STRAIGHTEN

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_STRAIGHTEN
```

<br />

Rotates the image according to the specified angle, and crops the image so that no non-image portions are visible.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `angle` | The angle of rotation. | Float, between -45 and +45. |

<br />

<br />

Constant Value: "android.media.effect.effects.StraightenEffect"

### EFFECT_TEMPERATURE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_TEMPERATURE
```

<br />

Adjusts color temperature of the image.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The value of color temperature. | Float, between 0 and 1, with 0 indicating cool, and 1 indicating warm. A value of of 0.5 indicates no change. |

<br />

<br />

Constant Value: "android.media.effect.effects.ColorTemperatureEffect"

### EFFECT_TINT

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_TINT
```

<br />

Tints the photo with specified color.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `tint` | The color of the tint. | Integer, representing an ARGB color with 8 bits per channel. May be created using `https://developer.android.com/reference/android/graphics/Color` class. |

<br />

<br />

Constant Value: "android.media.effect.effects.TintEffect"

### EFFECT_VIGNETTE

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static final String EFFECT_VIGNETTE
```

<br />

Adds a vignette effect to image, i.e. fades away the outer image edges.

Available parameters:

|---|---|---|
| Parameter name | Meaning | Valid values |
| `scale` | The scale of vignetting. | Float, between 0 and 1. 0 means no change. |

<br />

<br />

Constant Value: "android.media.effect.effects.VignetteEffect"

## Public methods

### createEffect

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public Effect createEffect (String effectName)
```

Instantiate a new effect with the given effect name.

The effect's parameters will be set to their default values.

Note that the EGL context associated with the current EffectContext need not be made current when creating an effect. This allows the host application to instantiate effects before any EGL context has become current.

<br />

<br />

| Parameters ||
|---|---|
| `effectName` | `String`: The name of the effect to create. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/media/effect/Effect` | A new Effect instance. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the effect with the specified name is not supported or not known. |

### isEffectSupported

Added in [API level 14](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public static boolean isEffectSupported (String effectName)
```

Check if an effect is supported on this platform.

Some effects may only be available on certain platforms. Use this method before instantiating an effect to make sure it is supported.

<br />

<br />

| Parameters ||
|---|---|
| `effectName` | `String`: The name of the effect. <br /> |

| Returns ||
|---|---|
| `boolean` | true, if the effect is supported on this platform. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if the effect name is not known. |