2011-04-12 3 views
2

이 메서드를 검사 할 때 빨강, 녹색 및 파랑이 0-255 범위에 있어야합니다. 대신 0-1에 있습니다.UIColor의 이상한 인수 colorWithRed : green : blue : alpha :

나는 이것이 이상하다고 생각하는 유일한 사람입니까?

RGB 나 16 진수 (html처럼)에 대해 일반적인 0-255 값을 사용하지 않는 이유가 있습니까?

답변

1

0 ~ 255는 각 색상 구성 요소를 표현하기 위해 8 비트를 사용하는 가정하기 때문에 255가 아니라 0이 가끔 RGB 값은 부동 소수점 값으로 표현되는 이유와 따라서 프레임 버퍼의 각 색상별로 24 비트를 사용해야합니다. 총 256 색 또는 1,600 만 개 이상을 지원하는 디스플레이를 사용하는 경우에는 그렇지 않을 수 있습니다. 이론상으로 빨강, 녹색 또는 파란색 음영이 무한대가 될 수 있습니다. 이미지를 표현하는 데 사용하는 비트 수는 이미지를 표현하기 위해 그래픽 카드에서 얼마나 많은 메모리와 색상을 표현해야하는지에 따라 달라집니다. 많은 경우 0에서 255까지 사용 가능합니다. 하지만 거기에 또 다른 세계가 어디 괜찮아요, 그리고 그 장치에 대한/정확한 렌더링 요구 사항, 부동 소수점 많이 필요한 대안을 제공합니다.

3

내 의견으로는 이상하지 않습니다. 0-255 및 0.0-1.0 수준 모두 다른 플랫폼에서 널리 사용됩니다. 당신은 항상 이런 식으로 뭔가를 사용하여 해당 변환 할 수 있습니다 :

#define FLOAT_COLOR_VALUE(n) (n)/255.0
관련 문제