RenderScript 変換関数

概要

以下の関数は、数値ベクトル型から別の色表現への変換、またはある色表現から別の色表現への変換を行います。

まとめ

関数
convert 数値ベクトルを変換する
rsPackColorTo8888 浮動小数点数から uchar4 RGBA を作成する
rsUnpackColor8888 uchar4 から float4 RGBA を作成する
rsYuvToRGBA YUV 値を RGBA に変換する

関数

convert : 数値ベクトルを変換する

char2 convert_char2(char2 v);
char2 convert_char2(double2 v); API レベル 21 で追加されました
char2 convert_char2(float2 v);
char2 convert_char2(half2 v); API レベル 24 で追加されました
char2 convert_char2(int2 v);
char2 convert_char2(long2 v); API レベル 21 で追加されました
char2 convert_char2(short2 v);
char2 convert_char2(uchar2 v);
char2 convert_char2(uint2 v);
char2 convert_char2(ulong2 v); API レベル 21 で追加されました
char2 convert_char2(ushort2 v);
char3 convert_char3(char3 v);
char3 convert_char3(double3 v); API レベル 21 で追加されました
char3 translate_char3(float3 v);
char3 translate_char3(half3 v); API レベル 24 で追加されました
char3 convert_char3(int3 v);
char3 convert_char3(long3 v); API レベル 21 で追加されました
char3 convert_char3(short3 v);
char3 convert_char3(uchar3 v);
char3 convert_char3(uint3 v);
char3 convert_char3(ulong3 v); API レベル 21 で追加されました
char3 convert_char3(ushort3 v);
char4 convert_char4(char4 v);
char4 convert_char4(double4 v); API レベル 21 で追加されました
char4 convert_char4(float4 v);
char4 convert_char4(half4 v); API レベル 24 で追加されました
char4 convert_char4(int4 v);
char4 conversion_char4(long4 v); API レベル 21 で追加されました
char4 convert_char4(short4 v);
char4 convert_char4(uchar4 v);
char4 convert_char4(uint4 v);
char4 convert_char4(ulong4 v); API レベル 21 で追加されました
char4 convert_char4(ushort4 v);
double2 Conversion_double2(char2 v); API レベル 21 で追加されました
double2 Conversion_double2(double2 v); API レベル 21 で追加されました
double2 Conversion_double2(float2 v); API レベル 21 で追加されました
double2 conversion_double2(half2 v); API レベル 24 で追加されました
double2 Conversion_double2(int2 v); API レベル 21 で追加されました
double2 convert_double2(long2 v); API レベル 21 で追加されました
double2 convert_double2(short2 v); API レベル 21 で追加されました
double2 convert_double2(uchar2 v); API レベル 21 で追加されました
double2 Conversion_double2(uint2 v); API レベル 21 で追加されました
double2 conversion_double2(ulong2 v); API レベル 21 で追加されました
double2 Conversion_double2(ushort2 v); API レベル 21 で追加されました
double3 convert_double3(char3 v); API レベル 21 で追加されました
double3 convert_double3(double3 v); API レベル 21 で追加されました
double3 Conversion_double3(float3 v); API レベル 21 で追加されました
double3 conversion_double3(half3 v); API レベル 24 で追加されました
double3 convert_double3(int3 v); API レベル 21 で追加されました
double3 convert_double3(long3 v); API レベル 21 で追加されました
double3 convert_double3(short3 v); API レベル 21 で追加されました
double3 convert_double3(uchar3 v); API レベル 21 で追加されました
double3 Conversion_double3(uint3 v); API レベル 21 で追加されました
double3 convert_double3(ulong3 v); API レベル 21 で追加されました
double3 Conversion_double3(ushort3 v); API レベル 21 で追加されました
double4 conversion_double4(char4 v); API レベル 21 で追加されました
double4 conversion_double4(double4 v); API レベル 21 で追加されました
double4 Conversion_double4(float4 v); API レベル 21 で追加されました
double4 Conversion_double4(half4 v); API レベル 24 で追加されました
double4 Conversion_double4(int4 v); API レベル 21 で追加されました
double4 convert_double4(long4 v); API レベル 21 で追加されました
double4 convert_double4(short4 v); API レベル 21 で追加されました
double4 Conversion_double4(uchar4 v); API レベル 21 で追加されました
double4 conversion_double4(uint4 v); API レベル 21 で追加されました
double4 Conversion_double4(ulong4 v); API レベル 21 で追加されました
double4 convert_double4(ushort4 v); API レベル 21 で追加されました
float2 convert_float2(char2 v);
float2 convert_float2(double2 v); API レベル 21 で追加されました
float2 conversion_float2(float2 v);
float2 conversion_float2(half2 v); API レベル 24 で追加されました
float2 convert_float2(int2 v);
float2 convert_float2(long2 v); API レベル 21 で追加されました
float2 convert_float2(short2 v);
float2 convert_float2(uchar2 v);
float2 Conversion_float2(uint2 v);
float2 convert_float2(ulong2 v); API レベル 21 で追加されました
float2 convert_float2(ushort2 v);
float3 convert_float3(char3 v);
float3 Conversion_float3(double3 v); API レベル 21 で追加されました
float3 conversion_float3(float3 v);
float3 conversion_float3(half3 v); API レベル 24 で追加されました
float3 convert_float3(int3 v);
float3 convert_float3(long3 v); API レベル 21 で追加されました
float3 conversion_float3(short3 v);
float3 convert_float3(uchar3 v);
float3 Conversion_float3(uint3 v);
float3 convert_float3(ulong3 v); API レベル 21 で追加されました
float3 conversion_float3(ushort3 v);
float4 convert_float4(char4 v);
float4 conversion_float4(double4 v); API レベル 21 で追加されました
float4 conversion_float4(float4 v);
float4 convert_float4(half4 v); API レベル 24 で追加されました
float4 convert_float4(int4 v);
float4 convert_float4(long4 v); API レベル 21 で追加されました
float4 conversion_float4(short4 v);
float4 conversion_float4(uchar4 v);
float4 convert_float4(uint4 v);
float4 convert_float4(ulong4 v); API レベル 21 で追加されました
float4 convert_float4(ushort4 v);
half2 convert_half2(char2 v); API レベル 24 で追加されました
half2 convert_half2(double2 v); API レベル 24 で追加されました
half2 convert_half2(float2 v); API レベル 24 で追加されました
half2 convert_half2(half2 v); API レベル 24 で追加されました
half2 translate_half2(int2 v); API レベル 24 で追加されました
half2 convert_half2(long2 v); API レベル 24 で追加されました
half2 convert_half2(short2 v); API レベル 24 で追加されました
half2 convert_half2(uchar2 v); API レベル 24 で追加されました
half2 convert_half2(uint2 v); API レベル 24 で追加されました
half2 convert_half2(ulong2 v); API レベル 24 で追加されました
half2 convert_half2(ushort2 v); API レベル 24 で追加されました
half3 convert_half3(char3 v); API レベル 24 で追加されました
half3 convert_half3(double3 v); API レベル 24 で追加されました
half3 conversion_half3(float3 v); API レベル 24 で追加されました
half3 convert_half3(half3 v); API レベル 24 で追加されました
half3 convert_half3(int3 v); API レベル 24 で追加されました
half3 convert_half3(long3 v); API レベル 24 で追加されました
half3 convert_half3(short3 v); API レベル 24 で追加されました
half3 convert_half3(uchar3 v); API レベル 24 で追加されました
half3 convert_half3(uint3 v); API レベル 24 で追加されました
half3 convert_half3(ulong3 v); API レベル 24 で追加されました
half3 convert_half3(ushort3 v); API レベル 24 で追加されました
half4 convert_half4(char4 v); API レベル 24 で追加されました
half4 convert_half4(double4 v); API レベル 24 で追加されました
half4 convert_half4(float4 v); API レベル 24 で追加されました
half4 convert_half4(half4 v); API レベル 24 で追加されました
half4 convert_half4(int4 v); API レベル 24 で追加されました
half4 convert_half4(long4 v); API レベル 24 で追加されました
half4 convert_half4(short4 v); API レベル 24 で追加されました
half4 convert_half4(uchar4 v); API レベル 24 で追加されました
half4 convert_half4(uint4 v); API レベル 24 で追加されました
half4 convert_half4(ulong4 v); API レベル 24 で追加されました
half4 convert_half4(ushort4 v); API レベル 24 で追加されました
int2 convert_int2(char2 v);
int2 convert_int2(double2 v); API レベル 21 で追加されました
int2 convert_int2(float2 v);
int2 convert_int2(half2 v); API レベル 24 で追加されました
int2 convert_int2(int2 v);
int2 convert_int2(long2 v); API レベル 21 で追加されました
int2 convert_int2(short2 v);
int2 convert_int2(uchar2 v);
int2 convert_int2(uint2 v);
int2 convert_int2(ulong2 v); API レベル 21 で追加されました
int2 convert_int2(ushort2 v);
int3 convert_int3(char3 v);
int3 convert_int3(double3 v); API レベル 21 で追加されました
int3 convert_int3(float3 v);
int3 convert_int3(half3 v); API レベル 24 で追加されました
int3 convert_int3(int3 v);
int3 convert_int3(long3 v); API レベル 21 で追加されました
int3 convert_int3(short3 v);
int3 convert_int3(uchar3 v);
int3 convert_int3(uint3 v);
int3 convert_int3(ulong3 v); API レベル 21 で追加されました
int3 convert_int3(ushort3 v);
int4 convert_int4(char4 v);
int4 convert_int4(double4 v); API レベル 21 で追加されました
int4 convert_int4(float4 v);
int4 convert_int4(half4 v); API レベル 24 で追加されました
int4 convert_int4(int4 v);
int4 convert_int4(long4 v); API レベル 21 で追加されました
int4 convert_int4(short4 v);
int4 convert_int4(uchar4 v);
int4 conversion_int4(uint4 v);
int4 convert_int4(ulong4 v); API レベル 21 で追加されました
int4 convert_int4(ushort4 v);
long2 convert_long2(char2 v); API レベル 21 で追加されました
long2 convert_long2(double2 v); API レベル 21 で追加されました
long2 convert_long2(float2 v); API レベル 21 で追加されました
long2 convert_long2(half2 v); API レベル 24 で追加されました
long2 convert_long2(int2 v); API レベル 21 で追加されました
long2 convert_long2(long2 v); API レベル 21 で追加されました
long2 convert_long2(short2 v); API レベル 21 で追加されました
long2 convert_long2(uchar2 v); API レベル 21 で追加されました
long2 convert_long2(uint2 v); API レベル 21 で追加されました
long2 convert_long2(ulong2 v); API レベル 21 で追加されました
long2 convert_long2(ushort2 v); API レベル 21 で追加されました
long3 convert_long3(char3 v); API レベル 21 で追加されました
long3 convert_long3(double3 v); API レベル 21 で追加されました
long3 convert_long3(float3 v); API レベル 21 で追加されました
long3 convert_long3(half3 v); API レベル 24 で追加されました
long3 convert_long3(int3 v); API レベル 21 で追加されました
long3 convert_long3(long3 v); API レベル 21 で追加されました
long3 convert_long3(short3 v); API レベル 21 で追加されました
long3 convert_long3(uchar3 v); API レベル 21 で追加されました
long3 convert_long3(uint3 v); API レベル 21 で追加されました
long3 convert_long3(ulong3 v); API レベル 21 で追加されました
long3 convert_long3(ushort3 v); API レベル 21 で追加されました
long4 convert_long4(char4 v); API レベル 21 で追加されました
long4 convert_long4(double4 v); API レベル 21 で追加されました
long4 convert_long4(float4 v); API レベル 21 で追加されました
long4 convert_long4(half4 v); API レベル 24 で追加されました
long4 convert_long4(int4 v); API レベル 21 で追加されました
long4 conversion_long4(long4 v); API レベル 21 で追加されました
long4 convert_long4(short4 v); API レベル 21 で追加されました
long4 convert_long4(uchar4 v); API レベル 21 で追加されました
long4 convert_long4(uint4 v); API レベル 21 で追加されました
long4 convert_long4(ulong4 v); API レベル 21 で追加されました
long4 convert_long4(ushort4 v); API レベル 21 で追加されました
short2 convert_short2(char2 v);
short2 convert_short2(double2 v); API レベル 21 で追加されました
short2 convert_short2(float2 v);
short2 convert_short2(half2 v); API レベル 24 で追加されました
short2 convert_short2(int2 v);
short2 convert_short2(long2 v); API レベル 21 で追加されました
short2 convert_short2(short2 v);
short2 convert_short2(uchar2 v);
short2 convert_short2(uint2 v);
short2 convert_short2(ulong2 v); API レベル 21 で追加されました
short2 convert_short2(ushort2 v);
short3 convert_short3(char3 v);
short3 convert_short3(double3 v); API レベル 21 で追加されました
short3 convert_short3(float3 v);
short3 convert_short3(half3 v); API レベル 24 で追加されました
short3 convert_short3(int3 v);
short3 convert_short3(long3 v); API レベル 21 で追加されました
short3 convert_short3(short3 v);
short3 convert_short3(uchar3 v);
short3 convert_short3(uint3 v);
short3 convert_short3(ulong3 v); API レベル 21 で追加されました
short3 convert_short3(ushort3 v);
short4 convert_short4(char4 v);
short4 convert_short4(double4 v); API レベル 21 で追加されました
short4 convert_short4(float4 v);
short4 convert_short4(half4 v); API レベル 24 で追加されました
short4 convert_short4(int4 v);
short4 convert_short4(long4 v); API レベル 21 で追加されました
short4 convert_short4(short4 v);
short4 convert_short4(uchar4 v);
short4 convert_short4(uint4 v);
short4 convert_short4(ulong4 v); API レベル 21 で追加されました
short4 convert_short4(ushort4 v);
uchar2 convert_uchar2(char2 v);
uchar2 convert_uchar2(double2 v); API レベル 21 で追加されました
uchar2 convert_uchar2(float2 v);
uchar2 convert_uchar2(half2 v); API レベル 24 で追加されました
uchar2 convert_uchar2(int2 v);
uchar2 convert_uchar2(long2 v); API レベル 21 で追加されました
uchar2 convert_uchar2(short2 v);
uchar2 convert_uchar2(uchar2 v);
uchar2 convert_uchar2(uint2 v);
uchar2 convert_uchar2(ulong2 v); API レベル 21 で追加されました
uchar2 convert_uchar2(ushort2 v);
uchar3 convert_uchar3(char3 v);
uchar3 convert_uchar3(double3 v); API レベル 21 で追加されました
uchar3 convert_uchar3(float3 v);
uchar3 translate_uchar3(half3 v); API レベル 24 で追加されました
uchar3 convert_uchar3(int3 v);
uchar3 convert_uchar3(long3 v); API レベル 21 で追加されました
uchar3 convert_uchar3(short3 v);
uchar3 convert_uchar3(uchar3 v);
uchar3 convert_uchar3(uint3 v);
uchar3 convert_uchar3(ulong3 v); API レベル 21 で追加されました
uchar3 convert_uchar3(ushort3 v);
uchar4 convert_uchar4(char4 v);
uchar4 convert_uchar4(double4 v); API レベル 21 で追加されました
uchar4 convert_uchar4(float4 v);
uchar4 conversion_uchar4(half4 v); API レベル 24 で追加されました
uchar4 convert_uchar4(int4 v);
uchar4 convert_uchar4(long4 v); API レベル 21 で追加されました
uchar4 convert_uchar4(short4 v);
uchar4 convert_uchar4(uchar4 v);
uchar4 convert_uchar4(uint4 v);
uchar4 convert_uchar4(ulong4 v); API レベル 21 で追加されました
uchar4 convert_uchar4(ushort4 v);
uint2 convert_uint2(char2 v);
uint2 convert_uint2(double2 v); API レベル 21 で追加されました
uint2 convert_uint2(float2 v);
uint2 convert_uint2(half2 v); API レベル 24 で追加されました
uint2 convert_uint2(int2 v);
uint2 convert_uint2(long2 v); API レベル 21 で追加されました
uint2 convert_uint2(short2 v);
uint2 convert_uint2(uchar2 v);
uint2 convert_uint2(uint2 v);
uint2 convert_uint2(ulong2 v); API レベル 21 で追加されました
uint2 conversion_uint2(ushort2 v);
uint3 convert_uint3(char3 v);
uint3 convert_uint3(double3 v); API レベル 21 で追加されました
uint3 convert_uint3(float3 v);
uint3 convert_uint3(half3 v); API レベル 24 で追加されました
uint3 conversion_uint3(int3 v);
uint3 convert_uint3(long3 v); API レベル 21 で追加されました
uint3 convert_uint3(short3 v);
uint3 convert_uint3(uchar3 v);
uint3 convert_uint3(uint3 v);
uint3 convert_uint3(ulong3 v); API レベル 21 で追加されました
uint3 convert_uint3(ushort3 v);
uint4 convert_uint4(char4 v);
uint4 convert_uint4(double4 v); API レベル 21 で追加されました
uint4 convert_uint4(float4 v);
uint4 convert_uint4(half4 v); API レベル 24 で追加されました
uint4 convert_uint4(int4 v);
uint4 convert_uint4(long4 v); API レベル 21 で追加されました
uint4 convert_uint4(short4 v);
uint4 convert_uint4(uchar4 v);
uint4 convert_uint4(uint4 v);
uint4 convert_uint4(ulong4 v); API レベル 21 で追加されました
uint4 convert_uint4(ushort4 v);
ulong2 convert_ulong2(char2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(double2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(float2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(half2 v); API レベル 24 で追加されました
ulong2 convert_ulong2(int2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(long2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(short2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(uchar2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(uint2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(ulong2 v); API レベル 21 で追加されました
ulong2 convert_ulong2(ushort2 v); API レベル 21 で追加されました
ulong3 convert_ulong3(char3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(double3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(float3 v); API レベル 21 で追加されました
ulong3 translate_ulong3(half3 v); API レベル 24 で追加されました
ulong3 convert_ulong3(int3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(long3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(short3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(uchar3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(uint3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(ulong3 v); API レベル 21 で追加されました
ulong3 convert_ulong3(ushort3 v); API レベル 21 で追加されました
ulong4 convert_ulong4(char4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(double4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(float4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(half4 v); API レベル 24 で追加されました
ulong4 convert_ulong4(int4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(long4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(short4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(uchar4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(uint4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(ulong4 v); API レベル 21 で追加されました
ulong4 convert_ulong4(ushort4 v); API レベル 21 で追加されました
ushort2 convert_ushort2(char2 v);
ushort2 convert_ushort2(double2 v); API レベル 21 で追加されました
ushort2 convert_ushort2(float2 v);
ushort2 convert_ushort2(half2 v); API レベル 24 で追加されました
ushort2 convert_ushort2(int2 v);
ushort2 convert_ushort2(long2 v); API レベル 21 で追加されました
ushort2 convert_ushort2(short2 v);
ushort2 convert_ushort2(uchar2 v);
ushort2 convert_ushort2(uint2 v);
ushort2 convert_ushort2(ulong2 v); API レベル 21 で追加されました
ushort2 convert_ushort2(ushort2 v);
ushort3 convert_ushort3(char3 v);
ushort3 convert_ushort3(double3 v); API レベル 21 で追加されました
ushort3 convert_ushort3(float3 v);
ushort3 convert_ushort3(half3 v); API レベル 24 で追加されました
ushort3 convert_ushort3(int3 v);
ushort3 convert_ushort3(long3 v); API レベル 21 で追加されました
ushort3 convert_ushort3(short3 v);
ushort3 convert_ushort3(uchar3 v);
ushort3 convert_ushort3(uint3 v);
ushort3 convert_ushort3(ulong3 v); API レベル 21 で追加されました
ushort3 convert_ushort3(ushort3 v);
ushort4 convert_ushort4(char4 v);
ushort4 convert_ushort4(double4 v); API レベル 21 で追加されました
ushort4 conversion_ushort4(float4 v);
ushort4 convert_ushort4(half4 v); API レベル 24 で追加されました
ushort4 convert_ushort4(int4 v);
ushort4 convert_ushort4(long4 v); API レベル 21 で追加されました
ushort4 convert_ushort4(short4 v);
ushort4 convert_ushort4(uchar4 v);
ushort4 convert_ushort4(uint4 v);
ushort4 convert_ushort4(ulong4 v); API レベル 21 で追加されました
ushort4 convert_ushort4(ushort4 v);

ベクトルをある数値型から別の数値型に変換します。変換はエントリごとに行われます。

たとえば、a = convert_short3(b); を呼び出すことは、a.x = (short)b.x; a.y = (short)b.y; a.z = (short)b.z; を実行するのと同じです。

浮動小数点値を整数型に変換すると、切り捨てられます。

数値が大きすぎて宛先のタイプに収まらない場合、未定義の結果が生成されます。 たとえば、1.0e18 を含む浮動小数点数をショート動画に変換することは未定義です。これを回避するには、clamp() を使用します。

rsPackColorTo8888 : 浮動小数点数から uchar4 RGBA を作成する

uchar4 rsPackColorTo8888(float r, float g, float b);
uchar4 rsPackColorTo8888(float r, float g, float b, float a);
uchar4 rsPackColorTo8888(float3 色);
uchar4 rsPackColorTo8888(float4 色);
パラメータ
r赤のコンポーネント。
g緑色のコンポーネント。
b青のコンポーネント。
aアルファ版コンポーネントです。
R、G、B、A の値を含む 3 個または 4 個の浮動小数点数のベクトル。

3 つまたは 4 つの浮動小数点 RGBA 値を uchar4 にパックします。

入力値は通常 0.0f ~ 1.0f です。この範囲外の入力値の場合、結果の出力は 0 ~ 255 にクランプされます。このクランプ処理は、入力に 255.f を乗算して整数に変換した後に行われる可能性があるため、INT_MAX/255.f より大きいまたは INT_MIN/255.f より小さい入力数値は未定義の動作になります。

アルファ コンポーネントが指定されていない場合は、1.0 であるとみなされます。つまり、結果のアルファは 255 に設定されます。

rsUnpackColor8888 : uchar4 から float4 RGBA を作成する

float4 rsUnpackColor8888(uchar4 c);

uchar4 色を float4 に展開します。結果の浮動小数点数は 0.0 ~ 1.0 の範囲内になります。

rsYuvToRGBA : YUV 値を RGBA に変換する

float4 rsYuvToRGBA_float4(uchar y, uchar u, uchar v);
uchar4 rsYuvToRGBA_uchar4(uchar y, uchar u, uchar v);
パラメータ
y輝度コンポーネント。
uU 色差成分。
vV 色差成分。

色を YUV 表現から RGBA に変換します。

現時点では、逆変換を行う関数は用意されていません。