rsUnpackColor8888() 与 float4 convert_float4(char4 v) - Android/Renderscript 有什么区别

What is the difference in rsUnpackColor8888() from float4 convert_float4(char4 v) - Android/Renderscript

我发现这个网站有 RenderScript 示例,这里是示例:

https://android.googlesource.com/platform/frameworks/rs/+/master/java/tests/ImageProcessing2/src/com/android/rs/image/greyscale.rs?autodive=0%2F

现在他们使用 rsUnpackColor8888char 解包为 4 个浮点数的数组。 为什么不从这里 https://developer.android.com/guide/topics/renderscript/reference/rs_convert.html 使用 convert_float4(char4 v);

有什么区别?

第一个说:"Unpacks a uchar4 color to float4. The resulting floats will be between 0.0 and 1.0 inclusive."。那么第二个对吗?

rsUnpackColor8888() 将值颜色分量归一化到 [0, 1] 范围。 convert_float4() 没有这样的事情,所以你会得到 [0, 255] 范围内的浮点数。当以相反的方式转换时,convert_uchar4() 向下舍入并将输出限制为 [0, 255](即它正确处理值 <0 和 >255)。