2015-01-02 8 views
5

내 디자이너가 그릴 색을 지정했습니다. Cocoa 앱에서 그 색상을 그릴 때 Sketch.app에 표시된 것처럼 참조 이미지와 시각적으로 다른 색상이 나타납니다.Sketch에서 내 디자이너가 지정한 색상을 정확하게 그려 내 코코아 앱을 얻으려면 어떻게해야합니까?

커스텀 뷰를 그리는 작은 코코아 앱을 만들었습니다. 다음은 코드의 흥미로운 부분입니다. SRGB 공간에서 색상을 초기화 중입니다.

class View: NSView { 
    override func drawRect(dirtyRect: NSRect) { 
     let components : [CGFloat] = [156.0/255.0, 0, 254.0/255.0, 1] 
     let color = NSColor.init(SRGBRed: components[0], green: components[1], blue: components[2], alpha: components[3]) 
     color.setFill() 
     NSRectFill(self.bounds) 
    }  
} 

다음은 무엇입니까?

enter image description here

을 (.. 걱정하지 마라 커서에 대한 부분 그리고 나는 다른 창문 옆에이 쪽을 검토하는 것이 더 쉽습니다 있도록 창 그림자를 제거) 그리고 여기 스케치 파일 부분입니다 :

enter image description here

스케치 파일과 사용자 정의보기가 나란히 표시되며 Xscope loupe는 마우스 커서 아래에 색상 값을 표시합니다.

enter image description here

내 사용자 정의보기를 가리키면, 나는이를 참조하십시오 :

스케치 파일을 가리키면,이 볼

enter image description here

당신이 볼 수있는 색상 값 검은 색 마우스 커서 아래에있는 픽셀의 Xscope로 읽은 값은 상당히 다릅니다. 흥미롭게도 캡처 된 스크린 샷 PNG와 크게 다르지는 않지만 내 Retina Macbook Pro 디스플레이에서 색상이 크게 달라집니다.

그러나 지금까지는 기본 디스플레이 설정과 색상 프로파일 "컬러 LCD"(하드웨어는 Retina Macbook Pro와 디스플레이가 내장되어 있음)를 사용했습니다. 사용자 정의보기를 샘플링 할 때

enter image description here

을 그리고 : 나는 수동으로 OSX 설정 응용 프로그램에서 "sRGB를 IEC61966-2.1"에 디스플레이 프로필을 변경 한 다음 Xscope 다시 색상을 샘플링 할 때, 이러한 샘플 값을 볼 수 있습니다 :

enter image description here

대부분 흥미롭게도, 내 사용자 지정보기에 Xscope에 의해 샘플링 값이 정확히 지정된 값과 일치하는지 볼 수 있고, 색상도 시각적으로 올바른 것입니다. 물론 사용자가 디스플레이 프로필을 변경할 수는 없습니다.

내 질문 : 기본 색상 LCD 디스플레이 프로필로 사용자 정의보기 색상을 Sketch의 색상 (육안 검사 및 Xscope 루핑으로 샘플링 한 경우)과 정확하게 일치 시키려면 어떻게해야합니까?

+0

Sketch.app은 가져온 이미지 파일의 색상 프로파일을 유지하는 데 반드시 도움이된다고 저는 생각하지 않습니다. 이미지 파일에 포함 된 색상 프로파일이 있다고 가정합니다. Preview.app가 더 안정적 일 수 있습니다. 디자이너가 파일을 만든 방법에 따라 색상 견본이 디스플레이의 색상 프로파일에있을 수 있으며, 이는 다른 디스플레이에 반드시 충실하게 재현되지는 않습니다. 그들이 나열한 RGB 값이 sRGB 색상 공간에있는 것으로 지정했다면 그 색상 값을 사용하십시오. # 9c00fe는 명시 적으로 sRGB 인 웹 색상 표기로 RGB 값을 인코딩합니다. –

+0

디자이너가 스케치에서 상자를 그린 후 채우기 값으로 색상을 입력합니다. 제 직업은 두 화면을 내 화면에 맞추기 위해서입니다. 따라서 디자이너와 화면의 색상이 정확 해 보입니다. – Jaanus

+1

디자이너가 색상을 어떻게 선택 했습니까? 그들은 표준 색상 선택기 창을 사용 했습니까? 이 창에서 RGB 값을 입력 /보기 할 수있는 탭에는 색 공간을 선택하는 작은 컨트롤이 있습니다. 그들이 특정 색 공간을 선택하고 그것을 당신에게 전달하는 것을 조심하지 않으면, 그들의 선택은 쓸데없는 것의 옆에있다, 나는 두려워한다. 그들이 나열한 RGB 값과 동일합니다. 관찰하는 동안 프로세스를 재현하게하려면 RGB 값이 어떤 색 공간인지 파악할 수 있습니다. 또는 원하는 색상 공간으로 변환하십시오. –

답변

0

이 문제를 직접 해결했습니다. 내 과정이있다. Retina Macbook Pro에서 테스트되었습니다.

  1. 오픈 스케치.(OSX에 설치)에
  2. 스위치
  3. 열기 디지털 컬러 측정기 '디스플레이에서 일반 RGB'
  4. 메뉴에서
  5. 보기 '있는지 확인 -> 디스플레이 값 -> Decimal`
  6. 마우스로의 색상을 통해 스케치 작품과 (예를 들면 0, 150 (200))의 값에 유의

코코아에서 그 값을 사용

-(void)drawRect:(NSRect)dirtyRect { 
    [[NSColor colorWithCalibratedRed:0/255.0 green:150/255.0 blue:200/255.0 alpha:1] set]; 
    NSRectFill(self.bounds); 
} 

이 작동한다, G '로서 에릭 RGB '는 코코아의'보정 된 '색 공간과 동일한 장치 독립 공간입니다.

+0

이것은 설계시 사용 된 디자이너와 동일한 시스템에서 문서를 연 경우에만 작동합니다. 그렇지 않다면 Mac은 설계자가 디자인 한 색상과 동일한 색상을 보이지 않아 상황이 절망적입니다. 디자이너 **는 ** 스케치가 사용하지 않는 색상 프로파일을 사용하고 보존하는 워크 플로우를 사용해야합니다 (마지막으로 확인). 그리고 이미지를 표시 할 때 첨부 된 색상 프로파일을 존중하는 프로그램을 사용해야합니다 (샘플링하려는 경우). –

+0

@KenThomases 네, 이것은 절대적으로 진실이고 좋은 지적입니다. 내 워크 플로우는 개발자가 Sketch에서보고있는 것에서 개발자가 Cocoa에서보고 싶은 것까지 완벽한 번역을 보장합니다. –