正如标题所说,有谁知道什么是RGBX_8888像素格式?和RGBA_8888有什么区别? RGBA_8888是否提供alpha通道但RGBX_8888不提供?
不幸的是,Android文档没有提供太多关于此的信息。
感谢。
答案 0 :(得分:8)
RGBX表示像素格式仍然具有Alpha通道,但它被忽略,并始终设置为255.
一些参考:
Blackberry PixelFormat (它不是android,但我猜这些命名约定在不同平台上保持相同。)
RGBX 32位RGB格式作为8个红色位,8个绿色位,8个蓝色位和8个忽略位存储在存储器中。
Android 4.1.2 source code(texture.cpp)第80行
有一个名为PointSample的函数,它根据模板格式和传递的参数进行采样。你可以看到,在pixelformat 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;
}