문제

함수 매개 변수에 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

도움이되기를 바랍니다

다른 팁

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top