page.title=RenderScript Conversion Functions @jd:body

Overview

The functions below convert from a numerical vector type to another, of from one color representation to another.

Summary

Functions
convert Convert numerical vectors
rsPackColorTo8888 Create a uchar4 RGBA from floats
rsUnpackColor8888 Create a float4 RGBA from uchar4
rsYuvToRGBA Convert a YUV value to RGBA

Functions

convert : Convert numerical vectors

char2 convert_char2(char2 v);
char2 convert_char2(double2 v); Added in API level 21
char2 convert_char2(float2 v);
char2 convert_char2(int2 v);
char2 convert_char2(long2 v); Added in API level 21
char2 convert_char2(short2 v);
char2 convert_char2(uchar2 v);
char2 convert_char2(uint2 v);
char2 convert_char2(ulong2 v); Added in API level 21
char2 convert_char2(ushort2 v);
char3 convert_char3(char3 v);
char3 convert_char3(double3 v); Added in API level 21
char3 convert_char3(float3 v);
char3 convert_char3(int3 v);
char3 convert_char3(long3 v); Added in API level 21
char3 convert_char3(short3 v);
char3 convert_char3(uchar3 v);
char3 convert_char3(uint3 v);
char3 convert_char3(ulong3 v); Added in API level 21
char3 convert_char3(ushort3 v);
char4 convert_char4(char4 v);
char4 convert_char4(double4 v); Added in API level 21
char4 convert_char4(float4 v);
char4 convert_char4(int4 v);
char4 convert_char4(long4 v); Added in API level 21
char4 convert_char4(short4 v);
char4 convert_char4(uchar4 v);
char4 convert_char4(uint4 v);
char4 convert_char4(ulong4 v); Added in API level 21
char4 convert_char4(ushort4 v);
double2 convert_double2(char2 v); Added in API level 21
double2 convert_double2(double2 v); Added in API level 21
double2 convert_double2(float2 v); Added in API level 21
double2 convert_double2(int2 v); Added in API level 21
double2 convert_double2(long2 v); Added in API level 21
double2 convert_double2(short2 v); Added in API level 21
double2 convert_double2(uchar2 v); Added in API level 21
double2 convert_double2(uint2 v); Added in API level 21
double2 convert_double2(ulong2 v); Added in API level 21
double2 convert_double2(ushort2 v); Added in API level 21
double3 convert_double3(char3 v); Added in API level 21
double3 convert_double3(double3 v); Added in API level 21
double3 convert_double3(float3 v); Added in API level 21
double3 convert_double3(int3 v); Added in API level 21
double3 convert_double3(long3 v); Added in API level 21
double3 convert_double3(short3 v); Added in API level 21
double3 convert_double3(uchar3 v); Added in API level 21
double3 convert_double3(uint3 v); Added in API level 21
double3 convert_double3(ulong3 v); Added in API level 21
double3 convert_double3(ushort3 v); Added in API level 21
double4 convert_double4(char4 v); Added in API level 21
double4 convert_double4(double4 v); Added in API level 21
double4 convert_double4(float4 v); Added in API level 21
double4 convert_double4(int4 v); Added in API level 21
double4 convert_double4(long4 v); Added in API level 21
double4 convert_double4(short4 v); Added in API level 21
double4 convert_double4(uchar4 v); Added in API level 21
double4 convert_double4(uint4 v); Added in API level 21
double4 convert_double4(ulong4 v); Added in API level 21
double4 convert_double4(ushort4 v); Added in API level 21
float2 convert_float2(char2 v);
float2 convert_float2(double2 v); Added in API level 21
float2 convert_float2(float2 v);
float2 convert_float2(int2 v);
float2 convert_float2(long2 v); Added in API level 21
float2 convert_float2(short2 v);
float2 convert_float2(uchar2 v);
float2 convert_float2(uint2 v);
float2 convert_float2(ulong2 v); Added in API level 21
float2 convert_float2(ushort2 v);
float3 convert_float3(char3 v);
float3 convert_float3(double3 v); Added in API level 21
float3 convert_float3(float3 v);
float3 convert_float3(int3 v);
float3 convert_float3(long3 v); Added in API level 21
float3 convert_float3(short3 v);
float3 convert_float3(uchar3 v);
float3 convert_float3(uint3 v);
float3 convert_float3(ulong3 v); Added in API level 21
float3 convert_float3(ushort3 v);
float4 convert_float4(char4 v);
float4 convert_float4(double4 v); Added in API level 21
float4 convert_float4(float4 v);
float4 convert_float4(int4 v);
float4 convert_float4(long4 v); Added in API level 21
float4 convert_float4(short4 v);
float4 convert_float4(uchar4 v);
float4 convert_float4(uint4 v);
float4 convert_float4(ulong4 v); Added in API level 21
float4 convert_float4(ushort4 v);
int2 convert_int2(char2 v);
int2 convert_int2(double2 v); Added in API level 21
int2 convert_int2(float2 v);
int2 convert_int2(int2 v);
int2 convert_int2(long2 v); Added in API level 21
int2 convert_int2(short2 v);
int2 convert_int2(uchar2 v);
int2 convert_int2(uint2 v);
int2 convert_int2(ulong2 v); Added in API level 21
int2 convert_int2(ushort2 v);
int3 convert_int3(char3 v);
int3 convert_int3(double3 v); Added in API level 21
int3 convert_int3(float3 v);
int3 convert_int3(int3 v);
int3 convert_int3(long3 v); Added in API level 21
int3 convert_int3(short3 v);
int3 convert_int3(uchar3 v);
int3 convert_int3(uint3 v);
int3 convert_int3(ulong3 v); Added in API level 21
int3 convert_int3(ushort3 v);
int4 convert_int4(char4 v);
int4 convert_int4(double4 v); Added in API level 21
int4 convert_int4(float4 v);
int4 convert_int4(int4 v);
int4 convert_int4(long4 v); Added in API level 21
int4 convert_int4(short4 v);
int4 convert_int4(uchar4 v);
int4 convert_int4(uint4 v);
int4 convert_int4(ulong4 v); Added in API level 21
int4 convert_int4(ushort4 v);
long2 convert_long2(char2 v); Added in API level 21
long2 convert_long2(double2 v); Added in API level 21
long2 convert_long2(float2 v); Added in API level 21
long2 convert_long2(int2 v); Added in API level 21
long2 convert_long2(long2 v); Added in API level 21
long2 convert_long2(short2 v); Added in API level 21
long2 convert_long2(uchar2 v); Added in API level 21
long2 convert_long2(uint2 v); Added in API level 21
long2 convert_long2(ulong2 v); Added in API level 21
long2 convert_long2(ushort2 v); Added in API level 21
long3 convert_long3(char3 v); Added in API level 21
long3 convert_long3(double3 v); Added in API level 21
long3 convert_long3(float3 v); Added in API level 21
long3 convert_long3(int3 v); Added in API level 21
long3 convert_long3(long3 v); Added in API level 21
long3 convert_long3(short3 v); Added in API level 21
long3 convert_long3(uchar3 v); Added in API level 21
long3 convert_long3(uint3 v); Added in API level 21
long3 convert_long3(ulong3 v); Added in API level 21
long3 convert_long3(ushort3 v); Added in API level 21
long4 convert_long4(char4 v); Added in API level 21
long4 convert_long4(double4 v); Added in API level 21
long4 convert_long4(float4 v); Added in API level 21
long4 convert_long4(int4 v); Added in API level 21
long4 convert_long4(long4 v); Added in API level 21
long4 convert_long4(short4 v); Added in API level 21
long4 convert_long4(uchar4 v); Added in API level 21
long4 convert_long4(uint4 v); Added in API level 21
long4 convert_long4(ulong4 v); Added in API level 21
long4 convert_long4(ushort4 v); Added in API level 21
short2 convert_short2(char2 v);
short2 convert_short2(double2 v); Added in API level 21
short2 convert_short2(float2 v);
short2 convert_short2(int2 v);
short2 convert_short2(long2 v); Added in API level 21
short2 convert_short2(short2 v);
short2 convert_short2(uchar2 v);
short2 convert_short2(uint2 v);
short2 convert_short2(ulong2 v); Added in API level 21
short2 convert_short2(ushort2 v);
short3 convert_short3(char3 v);
short3 convert_short3(double3 v); Added in API level 21
short3 convert_short3(float3 v);
short3 convert_short3(int3 v);
short3 convert_short3(long3 v); Added in API level 21
short3 convert_short3(short3 v);
short3 convert_short3(uchar3 v);
short3 convert_short3(uint3 v);
short3 convert_short3(ulong3 v); Added in API level 21
short3 convert_short3(ushort3 v);
short4 convert_short4(char4 v);
short4 convert_short4(double4 v); Added in API level 21
short4 convert_short4(float4 v);
short4 convert_short4(int4 v);
short4 convert_short4(long4 v); Added in API level 21
short4 convert_short4(short4 v);
short4 convert_short4(uchar4 v);
short4 convert_short4(uint4 v);
short4 convert_short4(ulong4 v); Added in API level 21
short4 convert_short4(ushort4 v);
uchar2 convert_uchar2(char2 v);
uchar2 convert_uchar2(double2 v); Added in API level 21
uchar2 convert_uchar2(float2 v);
uchar2 convert_uchar2(int2 v);
uchar2 convert_uchar2(long2 v); Added in API level 21
uchar2 convert_uchar2(short2 v);
uchar2 convert_uchar2(uchar2 v);
uchar2 convert_uchar2(uint2 v);
uchar2 convert_uchar2(ulong2 v); Added in API level 21
uchar2 convert_uchar2(ushort2 v);
uchar3 convert_uchar3(char3 v);
uchar3 convert_uchar3(double3 v); Added in API level 21
uchar3 convert_uchar3(float3 v);
uchar3 convert_uchar3(int3 v);
uchar3 convert_uchar3(long3 v); Added in API level 21
uchar3 convert_uchar3(short3 v);
uchar3 convert_uchar3(uchar3 v);
uchar3 convert_uchar3(uint3 v);
uchar3 convert_uchar3(ulong3 v); Added in API level 21
uchar3 convert_uchar3(ushort3 v);
uchar4 convert_uchar4(char4 v);
uchar4 convert_uchar4(double4 v); Added in API level 21
uchar4 convert_uchar4(float4 v);
uchar4 convert_uchar4(int4 v);
uchar4 convert_uchar4(long4 v); Added in API level 21
uchar4 convert_uchar4(short4 v);
uchar4 convert_uchar4(uchar4 v);
uchar4 convert_uchar4(uint4 v);
uchar4 convert_uchar4(ulong4 v); Added in API level 21
uchar4 convert_uchar4(ushort4 v);
uint2 convert_uint2(char2 v);
uint2 convert_uint2(double2 v); Added in API level 21
uint2 convert_uint2(float2 v);
uint2 convert_uint2(int2 v);
uint2 convert_uint2(long2 v); Added in API level 21
uint2 convert_uint2(short2 v);
uint2 convert_uint2(uchar2 v);
uint2 convert_uint2(uint2 v);
uint2 convert_uint2(ulong2 v); Added in API level 21
uint2 convert_uint2(ushort2 v);
uint3 convert_uint3(char3 v);
uint3 convert_uint3(double3 v); Added in API level 21
uint3 convert_uint3(float3 v);
uint3 convert_uint3(int3 v);
uint3 convert_uint3(long3 v); Added in API level 21
uint3 convert_uint3(short3 v);
uint3 convert_uint3(uchar3 v);
uint3 convert_uint3(uint3 v);
uint3 convert_uint3(ulong3 v); Added in API level 21
uint3 convert_uint3(ushort3 v);
uint4 convert_uint4(char4 v);
uint4 convert_uint4(double4 v); Added in API level 21
uint4 convert_uint4(float4 v);
uint4 convert_uint4(int4 v);
uint4 convert_uint4(long4 v); Added in API level 21
uint4 convert_uint4(short4 v);
uint4 convert_uint4(uchar4 v);
uint4 convert_uint4(uint4 v);
uint4 convert_uint4(ulong4 v); Added in API level 21
uint4 convert_uint4(ushort4 v);
ulong2 convert_ulong2(char2 v); Added in API level 21
ulong2 convert_ulong2(double2 v); Added in API level 21
ulong2 convert_ulong2(float2 v); Added in API level 21
ulong2 convert_ulong2(int2 v); Added in API level 21
ulong2 convert_ulong2(long2 v); Added in API level 21
ulong2 convert_ulong2(short2 v); Added in API level 21
ulong2 convert_ulong2(uchar2 v); Added in API level 21
ulong2 convert_ulong2(uint2 v); Added in API level 21
ulong2 convert_ulong2(ulong2 v); Added in API level 21
ulong2 convert_ulong2(ushort2 v); Added in API level 21
ulong3 convert_ulong3(char3 v); Added in API level 21
ulong3 convert_ulong3(double3 v); Added in API level 21
ulong3 convert_ulong3(float3 v); Added in API level 21
ulong3 convert_ulong3(int3 v); Added in API level 21
ulong3 convert_ulong3(long3 v); Added in API level 21
ulong3 convert_ulong3(short3 v); Added in API level 21
ulong3 convert_ulong3(uchar3 v); Added in API level 21
ulong3 convert_ulong3(uint3 v); Added in API level 21
ulong3 convert_ulong3(ulong3 v); Added in API level 21
ulong3 convert_ulong3(ushort3 v); Added in API level 21
ulong4 convert_ulong4(char4 v); Added in API level 21
ulong4 convert_ulong4(double4 v); Added in API level 21
ulong4 convert_ulong4(float4 v); Added in API level 21
ulong4 convert_ulong4(int4 v); Added in API level 21
ulong4 convert_ulong4(long4 v); Added in API level 21
ulong4 convert_ulong4(short4 v); Added in API level 21
ulong4 convert_ulong4(uchar4 v); Added in API level 21
ulong4 convert_ulong4(uint4 v); Added in API level 21
ulong4 convert_ulong4(ulong4 v); Added in API level 21
ulong4 convert_ulong4(ushort4 v); Added in API level 21
ushort2 convert_ushort2(char2 v);
ushort2 convert_ushort2(double2 v); Added in API level 21
ushort2 convert_ushort2(float2 v);
ushort2 convert_ushort2(int2 v);
ushort2 convert_ushort2(long2 v); Added in API level 21
ushort2 convert_ushort2(short2 v);
ushort2 convert_ushort2(uchar2 v);
ushort2 convert_ushort2(uint2 v);
ushort2 convert_ushort2(ulong2 v); Added in API level 21
ushort2 convert_ushort2(ushort2 v);
ushort3 convert_ushort3(char3 v);
ushort3 convert_ushort3(double3 v); Added in API level 21
ushort3 convert_ushort3(float3 v);
ushort3 convert_ushort3(int3 v);
ushort3 convert_ushort3(long3 v); Added in API level 21
ushort3 convert_ushort3(short3 v);
ushort3 convert_ushort3(uchar3 v);
ushort3 convert_ushort3(uint3 v);
ushort3 convert_ushort3(ulong3 v); Added in API level 21
ushort3 convert_ushort3(ushort3 v);
ushort4 convert_ushort4(char4 v);
ushort4 convert_ushort4(double4 v); Added in API level 21
ushort4 convert_ushort4(float4 v);
ushort4 convert_ushort4(int4 v);
ushort4 convert_ushort4(long4 v); Added in API level 21
ushort4 convert_ushort4(short4 v);
ushort4 convert_ushort4(uchar4 v);
ushort4 convert_ushort4(uint4 v);
ushort4 convert_ushort4(ulong4 v); Added in API level 21
ushort4 convert_ushort4(ushort4 v);

Converts a vector from one numerical type to another. The conversion are done entry per entry.

E.g calling a = convert_short3(b); is equivalent to doing a.x = (short)b.x; a.y = (short)b.y; a.z = (short)b.z;.

Converting floating point values to integer types truncates.

Converting numbers too large to fit the destination type yields undefined results. For example, converting a float that contains 1.0e18 to a short is undefined. Use clamp() to avoid this.

rsPackColorTo8888 : Create a uchar4 RGBA from floats

uchar4 rsPackColorTo8888(float r, float g, float b);
uchar4 rsPackColorTo8888(float r, float g, float b, float a);
uchar4 rsPackColorTo8888(float3 color);
uchar4 rsPackColorTo8888(float4 color);
Parameters
rRed component.
gGreen component.
bBlue component.
aAlpha component.
colorVector of 3 or 4 floats containing the R, G, B, and A values.

Packs three or four floating point RGBA values into a uchar4.

The input values are typically between 0.0f and 1.0f inclusive. For input values outside of this range, the resulting outputs will be clamped to be between 0 and 255. As this clamping may be done after the input is multiplied by 255.f and converted to an integer, input numbers greater than INT_MAX/255.f or less than INT_MIN/255.f result in undefined behavior.

If the alpha component is not specified, it is assumed to be 1.0, i.e. the result will have an alpha set to 255.

rsUnpackColor8888 : Create a float4 RGBA from uchar4

float4 rsUnpackColor8888(uchar4 c);

Unpacks a uchar4 color to float4. The resulting floats will be between 0.0 and 1.0 inclusive.

rsYuvToRGBA : Convert a YUV value to RGBA

float4 rsYuvToRGBA_float4(uchar y, uchar u, uchar v);
uchar4 rsYuvToRGBA_uchar4(uchar y, uchar u, uchar v);
Parameters
yLuminance component.
uU chrominance component.
vV chrominance component.

Converts a color from a YUV representation to RGBA.

We currently don't provide a function to do the reverse conversion.