argb로 rgba 버퍼를 변환하려고합니다. 다음 알고리즘을 개선 할 수있는 방법이 있습니까? 아니면 다른 빠른 방법으로 그러한 연산을 수행 할 수 있습니까? 알파 값은 argb 버퍼에서 한 번 중요하지 않으며 항상 0xFF로 끝나야 함을 고려하십시오. 나는 당신이 원하는 모든 스왑은 매 초마다 (짝수) 바이트 추측 할 수있는 코드가 버그 (단지 비효율적) 아니라고 가정Fast RGBA를 ARGB로 변환
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);
}
}
질문은 ARGB에서 ARGB가 아니라 BGRA에서 RGBA에 관한 질문이었습니다. – Blaisorblade
ARGB와 RGBA는 의미없는 단어이므로 철회해야 할 수도 있습니다. 이것은 여전히 질문과 일치하지 않는 것 같습니다 (알파는 0xff로 설정되지 않습니다). https://en.wikipedia.org/wiki/RGBA_color_space#Representation – Blaisorblade