ArgB-Uint에서 R 채널을 꺼내십니까?
-
10-07-2019 - |
문제
함수 매개 변수에 ARGB 값이 있으며 함수는 AGB 값을 제거하고 r 만 유지해야합니다. 어떻게 하시겠습니까? 감사합니다
해결책
그것은 비트 시프닝으로 이루어집니다.
32 비트 정수의 uint. 각 A, R, G, B는 8 개의 비트 (1 바이트)를 차지합니다. 그리고 그들은 이름이 a, r, g, b를 암시하는 것과 같은 순서로 나타납니다.
나가려면 B를 얻으려면 약간의 다른 비트를 약간 그리고 진술로 마스킹하면됩니다.
a = argb & 255 바이너리의 255는 11111111이므로 필요한 비트 만 유지합니다.
G의 경우 먼저 비트를 이동 한 다음 위의 작업을 수행해야합니다. g = argb >> 8 & 255
R은 동일하지만 16 비트를 이동합니다
r = argb >> 16 & 255
및 a = argb >> 24 & 255
도움이되기를 바랍니다
다른 팁
제휴하지 않습니다 StackOverflow