2015-02-04 5 views
0

추가 맞춤 설정없이 Photoshop에서 내 글꼴을 Helvetica Neue Regular로 22pt로 설정했습니다.OSX NSFont는 Photoshop에서 똑같은 글꼴과 다릅니다

이제는 OSX 응용 프로그램에서 똑같은 결과를 얻는 것이 매우 어렵습니다.

나는 (일반) HelveticaNeue 및 HelveticaNeue - 중간, 포토샵 및 OSX의 비교를 만들었습니다

self.label.font = [NSFont fontWithName:@"HelveticaNeue" size:22]; 

사용하여 내 NSTextField있는의 글꼴을 수정합니다. OSX 부분은 항상 더 굵은 글씨로 표시되며 글자 간격이 약간 줄었습니다.

잠시 놀아서 NSAttribuedString을 사용하여 OSX의 글꼴을 Photoshop 글꼴과 일치 할 때까지 조정할 수는 있지만 실제로 필요한가? 글꼴이 정확히 같지 않아야합니까?

enter image description here

답변

0

글꼴을 렌더링하는 방법에는 여러 가지가 있습니다. 분명히 Photoshop에는 자체 글꼴 렌더링 엔진이 있으며 기본적으로 NSTextField이 수행하는 것과 다릅니다.

이미지를 확대하여 (결과를 부드럽게하지 않는 방식으로) Photoshop 렌더링에서 회색조 앤티 앨리어싱을 사용하고 OS X 렌더링에서 하위 이미지를 사용하는 것을 볼 수 있습니다. 픽셀 앤티 앨리어싱. OS X 렌더링에는 색상 변두리가 있습니다. 정상적인 크기로 렌더링 될 때, 그 색은 LCD 화면의 다른 RGB 요소를 밝게 만듭니다. 색깔을 찾는 것보다는 밝기가 변하는 것처럼 보입니다. 기본적으로 하위 픽셀 앤티 앨리어싱은 LCD 픽셀 내의 색상 요소 레이아웃을 사용하여 렌더링 할 수있는 해상도를 높입니다.

또한 OS X 렌더링 엔진이 서브 픽셀 글리프 위치 지정을 사용하고 있다고 생각합니다. 이를 통해 글 꼴의 크기와 간격을 글꼴의 처방에 더 가깝게 따르고 픽셀 격자에 렌더링 할 때 작은 손상을 허용합니다. 예를 들어, 첫 번째 줄을 봅니다 (Helvetica Neue 22pt : Photoshop). "H"와 "e"사이와 "l"과 "v"사이의 간격은 나에게 잘못되었습니다. OS X은 내 눈에 더 잘 보인다.

텍스트를 직접 렌더링하는 경우 CGContextSetShouldSubpixelQuantizeFonts()을 사용하여 하위 픽셀 앤티 앨리어싱을 해제하고 CGContextSetShouldSubpixelPositionFonts()을 사용하여 하위 픽셀 위치 지정을 해제 할 수 있습니다. (문서에서 하위 픽셀 위치 지정을 끄면 하위 픽셀 앤티 앨리어싱이 꺼지기도하지만, 그 이유는 필연적으로 뒤 따랐을 것입니다.) Photoshop에서 제공하는 것과 비슷한 결과를 생성하는지 확인하십시오.

그런데 포토샵에서 글꼴을 렌더링하는 방법을 조정할 수도 있습니다. 두 가지가 표면적으로 동일한 글꼴을 렌더링하기 때문에 동일한 픽셀을 생성한다는 의미는 아닙니다.