2010-05-11 7 views
6

Snow Leopard에서는 기본 감마가 1.8에서 2.2로 변경되었습니다. Cocoa에서 제공하는 매우 어두운 사용자 지정 색 구성표를 사용하는 몇 가지 Mac 응용 프로그램에서 작업하고 있습니다. 10.5에서는 괜찮아 보이지만 새로운 감마가있는 10.6에서는 훨씬 더 어둡고 눈에 딱 들어 맞습니다.NSColor, 10.6 및 감마 2.2

색 구성표는 많은 테마 범주 내의 [NSColor colorWithCalibratedRed:green:blue:alpha:] 개체를 사용하여 정의됩니다.

NSColor 개체를 '변환'할 수있는 방법이 있습니까? 10.6에서 10.5와 똑같이 표시 되나요?

저는 이것이 시스템 환경 설정에서 전 세계적으로 달성 될 수 있지만 그것이 내가 원하는 것만은 아니라는 것을 알고 있습니다.

+0

해당 API 호출은 '[NSColor colorWithDeviceRed : green : blue : alpha :]'와 어떻게 다른가요? – fbrereto

+2

문서에서 "일반적으로 장치 색 공간 대신 ​​조정 된 (또는 일반) 색 공간을 사용하는 것이 좋습니다 장치 색상 공간의 색은 장치마다 크게 다를 수 있지만 조정 된 색 공간은 일반적으로 합리적으로 정확합니다 반면에 장치 색상 공간은 특정 상황에서 성능이 향상 될 수 있으므로 색상을 렌더링하거나 캡처 할 장치를 확실히 알고있는 경우 장치 색상 공간을 사용하십시오. " –

답변

0

내가 가진 유일한 문제는 어두운 색 그라디언트입니다. 10.4는 여전히 유효한 대상이므로 일부 시간 동안 CGShading 객체를 기반으로하는 자체 그라디언트 래퍼 클래스를 사용하고 있습니다 (NSGradient는 10.5+ 만 해당). 도움 아래 공식에 따라

간단한 비선형 보정 곡선 :

colour_component = pow(colour_component, 1.0/1.19); 

1.19 값은 다른 교정 곡선을 만들기 위해 조정될 수있다.

실행시 (게슈탈트 사용) 10.6이 감지되면 그래디언트가 계산되기 전에 시작과 끝 색상 모두에 대해 빨강, 녹색 및 파랑 구성 요소 각각에 곡선이 적용됩니다. 나는 알파 값을 그대로 놔두고있다.

또한이 기능을 켜고 끄기위한 편리한 사용자 환경 설정을 추가했습니다.

0

가장 좋은 방법은 색상이 좋게 보이는 디스플레이의 색상 프로파일을 저장하는 것입니다.

그런 다음 현재 사용중인 디스플레이의 색상 프로파일을 사용하여 색상을 변환하십시오.

기본적으로, 당신이해야 할 것은 :

(원래 프로필과 오리지널 컬러)

는 (현재 색상 프로파일을 새로운 컬러)로 변환.

항상 네 가지 중 세 가지 항목이 있습니다. 새 색상 만 계산하면됩니다.

자세한 내용은, 내가 읽기를 제안 :

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/DrawColor/DrawColor.html

+0

감사합니다. 빨강, 녹색, 파랑 및 알파 색상 요소에 액세스해야합니다. 지금까지 colorWithCalibratedRed로 만든 NSColor 객체 만 볼 수 있습니다 : .. and colorWithDeviceRed : .. 당신에게 자유를주십시오. –

+0

사실, 아니요. 일단 모든 세부 정보를 얻으려면 원하는대로 할 수 있습니다. 예를 들어, RGB 색상이 여러 개의 CMYK 색상을 나타낼 수 있다는 것을 깨달을 필요가있을 때도 있지만 ... – ericg