5

正如标题所说,有人知道什么是 RGBX_8888 像素格式吗?和 RGBA_8888 有什么区别?RGBA_8888 是否提供 Alpha 通道但 RGBX_8888 不提供?

不幸的是,android 文档没有提供太多关于此的信息。

谢谢。

4

1 回答 1

10

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;
}
于 2015-09-02T08:39:55.523 回答