正如标题所说,有人知道什么是 RGBX_8888 像素格式吗?和 RGBA_8888 有什么区别?RGBA_8888 是否提供 Alpha 通道但 RGBX_8888 不提供?
不幸的是,android 文档没有提供太多关于此的信息。
谢谢。
正如标题所说,有人知道什么是 RGBX_8888 像素格式吗?和 RGBA_8888 有什么区别?RGBA_8888 是否提供 Alpha 通道但 RGBX_8888 不提供?
不幸的是,android 文档没有提供太多关于此的信息。
谢谢。
RGBX 意味着像素格式仍然有一个 alpha 通道,但它被忽略了,并且始终设置为 255。
一些参考:
Blackberry PixelFormat (它不是 android,但我猜跨平台的命名约定保持不变。)
RGBX 32 位 RGB 格式在内存中存储为 8 个红色位、8 个绿色位、8 个蓝色位和 8 个忽略位。
Android 4.1.2 源码(texture.cpp) 第80行
有一个名为 PointSample 的函数,它根据模板格式和传递的参数进行采样。您可以看到,在像素格式 RGBX_8888 中,alpha 通道被忽略并设置为 255,而在 RGBA_8888 中,它是正常采样的。
if (GGL_PIXEL_FORMAT_RGBA_8888 == format)
*sample = *(data + index);
else if (GGL_PIXEL_FORMAT_RGBX_8888 == format)
{
*sample = *(data + index);
*sample |= 0xff000000;
}