Быстрое преобразование RGBA в ARGB
Я пытаюсь преобразовать буфер rgba в argb, есть ли способ улучшить следующий алгоритм или любой другой более быстрый способ выполнить такую операцию? Принимая во внимание, что значение альфа не важно один раз в буфере argb, и всегда должно заканчиваться значением 0xFF.
int y, x, pixel;
for (y = 0; y < height; y++)
{
for (x = 0; x < width; x++)
{
pixel = rgbaBuffer[y * width + x];
argbBuffer[(height - y - 1) * width + x] = (pixel & 0xff00ff00) | ((pixel << 16) & 0x00ff0000) | ((pixel >> 16) & 0xff);
}
}