added in API level 17

ScriptIntrinsicColorMatrix

public final class ScriptIntrinsicColorMatrix
extends ScriptIntrinsic

java.lang.Object
   ↳ android.renderscript.BaseObj
     ↳ android.renderscript.Script
       ↳ android.renderscript.ScriptIntrinsic
         ↳ android.renderscript.ScriptIntrinsicColorMatrix


Intrinsic for applying a color matrix to allocations. If the element type is Element.DataType.UNSIGNED_8, it is converted to Element.DataType.FLOAT_32 and normalized from (0-255) to (0-1). If the incoming vector size is less than four, a Element.F32_4(RenderScript) is created by filling the missing vector channels with zero. This value is then multiplied by the 4x4 color matrix as performed by rsMatrixMultiply(), adding a Element.F32_4(RenderScript), and then writing it to the output Allocation. If the ouptut type is unsigned, the value is normalized from (0-1) to (0-255) and converted. If the output vector size is less than four, the unused channels are discarded. Supported elements types are Element.U8(RenderScript), Element.U8_2(RenderScript), Element.U8_3(RenderScript), Element.U8_4(RenderScript), Element.F32(RenderScript), Element.F32_2(RenderScript), Element.F32_3(RenderScript), and Element.F32_4(RenderScript).

Summary

Public methods

static ScriptIntrinsicColorMatrix create(RenderScript rs, Element e)

This method was deprecated in API level 19. Use the single argument version as Element is now ignored.

static ScriptIntrinsicColorMatrix create(RenderScript rs)

Create an intrinsic for applying a color matrix to an allocation.

void forEach(Allocation ain, Allocation aout)

Invoke the kernel and apply the matrix to each cell of input Allocation and copy to the output Allocation.

void forEach(Allocation ain, Allocation aout, Script.LaunchOptions opt)

Invoke the kernel and apply the matrix to each cell of input Allocation and copy to the output Allocation.

Script.KernelID getKernelID()

Get a KernelID for this intrinsic kernel.

void setAdd(float r, float g, float b, float a)

Set the value to be added after the color matrix has been applied.

void setAdd(Float4 f)

Set the value to be added after the color matrix has been applied.

void setColorMatrix(Matrix3f m)

Set the color matrix which will be applied to each cell of the image.

void setColorMatrix(Matrix4f m)

Set the color matrix which will be applied to each cell of the image.

void setGreyscale()

Set a color matrix to convert from RGB to luminance.

void setRGBtoYUV()

Set the matrix to convert from RGB to YUV with a direct copy of the 4th channel.

void setYUVtoRGB()

Set the matrix to convert from YUV to RGB with a direct copy of the 4th channel.

Inherited methods

Public methods

create

added in API level 17
public static ScriptIntrinsicColorMatrix create (RenderScript rs, 
                Element e)

This method was deprecated in API level 19.
Use the single argument version as Element is now ignored.

Create an intrinsic for applying a color matrix to an allocation.

Parameters
rs RenderScript: The RenderScript context

e Element: Element type for inputs and outputs, As of API 19, this parameter is ignored. The Element type check is performed in the kernel launch.

Returns
ScriptIntrinsicColorMatrix ScriptIntrinsicColorMatrix

create

added in API level 19
public static ScriptIntrinsicColorMatrix create (RenderScript rs)

Create an intrinsic for applying a color matrix to an allocation.

Parameters
rs RenderScript: The RenderScript context

Returns
ScriptIntrinsicColorMatrix ScriptIntrinsicColorMatrix

forEach

added in API level 17
public void forEach (Allocation ain, 
                Allocation aout)

Invoke the kernel and apply the matrix to each cell of input Allocation and copy to the output Allocation. If the vector size of the input is less than four, the remaining components are treated as zero for the matrix multiply. If the output vector size is less than four, the unused vector components are discarded.

Parameters
ain Allocation: Input allocation

aout Allocation: Output allocation

forEach

added in API level 21
public void forEach (Allocation ain, 
                Allocation aout, 
                Script.LaunchOptions opt)

Invoke the kernel and apply the matrix to each cell of input Allocation and copy to the output Allocation. If the vector size of the input is less than four, the remaining components are treated as zero for the matrix multiply. If the output vector size is less than four, the unused vector components are discarded.

Parameters
ain Allocation: Input allocation

aout Allocation: Output allocation

opt Script.LaunchOptions: LaunchOptions for clipping

getKernelID

added in API level 17
public Script.KernelID getKernelID ()

Get a KernelID for this intrinsic kernel.

Returns
Script.KernelID Script.KernelID The KernelID object.

setAdd

added in API level 19
public void setAdd (float r, 
                float g, 
                float b, 
                float a)

Set the value to be added after the color matrix has been applied. The default value is {0, 0, 0, 0}

Parameters
r float: The red add value.

g float: The green add value.

b float: The blue add value.

a float: The alpha add value.

setAdd

added in API level 19
public void setAdd (Float4 f)

Set the value to be added after the color matrix has been applied. The default value is {0, 0, 0, 0}

Parameters
f Float4: The float4 value to be added.

setColorMatrix

added in API level 17
public void setColorMatrix (Matrix3f m)

Set the color matrix which will be applied to each cell of the image. This will set the alpha channel to be a copy.

Parameters
m Matrix3f: The 3x3 matrix to set.

setColorMatrix

added in API level 17
public void setColorMatrix (Matrix4f m)

Set the color matrix which will be applied to each cell of the image.

Parameters
m Matrix4f: The 4x4 matrix to set.

setGreyscale

added in API level 17
public void setGreyscale ()

Set a color matrix to convert from RGB to luminance. The alpha channel will be a copy.

setRGBtoYUV

added in API level 17
public void setRGBtoYUV ()

Set the matrix to convert from RGB to YUV with a direct copy of the 4th channel.

setYUVtoRGB

added in API level 17
public void setYUVtoRGB ()

Set the matrix to convert from YUV to RGB with a direct copy of the 4th channel.