개발자 블로그

stroke width:0으로 그리기와 안그릴 때의 품질 차이 본문

프로그래밍/iOS-SWIFT

stroke width:0으로 그리기와 안그릴 때의 품질 차이

로이드.Roid 2017. 8. 11. 16:44

이미지 위에 텍스트를 그리는 경우, 외곽선(Stroke)을 그리는 방법에 따라서 그려진 결과 이미지의 텍스트 품질에 영향이 있다. 예전에 C#에서 프로그래밍 할 때는 투명배경에 그릴 때와 불투명배경에 텍스트를 그릴 때 비슷한 품질의 차이가 있었는데, 그 때 생각이 나네. 

텍스트의 외곽선을 선택적으로 그린다고 했을 때, 구현하는 방법에 따라서 아래 두 가지 방법을 생각해볼 수 있을 것 같다.

1. if 조건문을 이용해서 필요한 경우에만 그려주는 경우
2. NSStrokeWidthAttributeName 속성값을 이용하는 경우

2번 방법을 이용하는 경우는 width 값을 0으로 주면 결국에는 외곽선을 안그리는 결과를 가져온다. 2번 같은 방법은 코드에서 조건문이 사라지기 때문에 개인적으로 선호하는 방법이다. (뭐 계속 타고 올라가면 결국 조건문이 등장하기는 하지만..)

개발자 문서를 보면 "Specify 0 (the default) for no additional changes."라고 되어있어서 0을 주면 아무런 변경이 없는 줄 알았는데, 막상 구현해보니깐 결과 이미지 퀄리티에 큰 차이가 있었다. 

아래 이미지가 width값을 0으로 해서 외곽선을 그렸을 때의 결과 이미지. (오타는 신경쓰지 말자..-_-;; 다시 캡쳐하려니 귀찮아서..)

안티-알리아싱(Anti-Aliasing) 효과를 끈 것 같은 품질의 텍스트가 그려진다.


그리고, 아예 stroke를 그리지 않은 경우

텍스트 퀄리티가 한결 좋아진다. 

Comments