윈도우/로컬(local) 폰트 뷰어(Viewer)

 
 
Introduction

최근들어 무료폰트들이 많이 공개되었습니다.  커뮤니티로부터 알게된 무료 폰트 모음 페이지에 접속하게되면 많은 폰트들이 있습니다. 이러한 폰트들을 다운 받아, 자신만의 홈페이지,App 그리고 광고 등에서 폰트를 사용할 수 있습니다. 각각의 페이지에서 라이센스를 한번 더 확인 하고 사용하는 것이 중요하다고 생각되네요. 
 
 
이러한 폰트들을 다운받았을 때, 다시 홈페이지로 접속하여 서체를 확인해야하는 문제가 있습니다. 물론 사용하는 폰트가 적다면 큰 문제는 없지만, 온라인에 무료로 공개된 폰트들이 많을 경우에 일일이 확인해야하는 문제가 있습니다. 그래서 이러한 문제를 조금 해결하기위해 폰트관리자SW를 아래와 같이 만들어두었습니다. (SW이름 네이밍 추천이 있으시면 댓글로 언제든 환영입니다^^)
 
 
폰트관리자SW는 먼저 실행하게 되면, Windnows/font 폴더 하위에 있는 폴더를 읽어오게 됩니다. 그리고 글자를 입력하면, 아래에 폰트가 적용되어 나타나게 됩니다. 이때, 폰트의 크기(Size)조절되도록 해두었습니다.  그외에 무료로 다운 받은 폰트를 확인 할 수 있습니다. 방법을 그럼 알아보도록 할까요? 
 

 

 

 
온라인으로 다운받은 무료폰트 불러오기

 
 
 
OPEN버튼을 선택하면 아래와 같은 창이 뜨게 됩니다. 이때, 폰트의 최상단을 선택하게 되면, 하위 폴더 전체 검색하여 폰트를 읽어오게 됩니다. 
 
 
이때 저는 "_free" 라는 폴더를 선택함으로써 그 하위에 있는 폰트 전체를 읽어오도록 하였습니다. 결과를 확인해보도록 할까요?
 
 
결과는 상위 그림과 같이 나타나게 됩니다. 그리고 FontList의 콤보박스(combobox)에서 폰트를 선택하시면, 아래 결과창의 글자 폰트가 변경됩니다. 
예시 결과를 볼까요?
 
폰트: Gong Gothic Bold 
 
폰트: SDSamplphopangcheOutline
 
이렇게 쉽게 폰트 확인이 가능합니다. 이번에는 3GB정도 용량의 폰트를 읽어보도록 하겠습니다. 약 30초(?) 잠시 딜레이가 있지만, 기다리면 폰트를 로드하게 됩니다. (이것도 최대한 빠르게 로드하는 방법을 찾아 수정하였습니다...^^;)
 
 
폰트 30752개 로드하였을 때 모습입니다. 온라인에서 무료 폰트 외, 눈에 보이는대로 받다보니 혹시 몰라 폰트는 모자이크 처리해두었습니다. 
이렇게 자신의 컴퓨터에 다운 받은 폰트를 간단하게 로드하여, 직접 입력한 글자에 폰트를 적용시켜 볼 수 있습니다. 
 
초기 버전이라, 간단하게만 만들어두었습니다. 업데이트 버전은 조금 더 많은 폰트를 한눈에 볼 수 있도록 수정할 예정입니다. 업데이트 버전도 관심있게 기대해주세요 🙂
 
아래는 이것저것 & 폰트 관리자 개발과 관련된 내용을 정리해두었으니, SW사용자는 이후로는 살펴보지 않으셔도 됩니다. 
 

 

 

 
폰트 타입(종류)

  폰트는 투루타입(ttf, True Type Font)오픈타입(otf,Open Type Font) 파일로 나뉘어져있습니다. 트루타입의 경우, Apple+MS가 개발하였고 일반 문서 작업 사용자에게 적합합니다. 주로 한글(HWP), MS Office 등 문서프로그램에서 많이 사용하고 있습니다. 그리고 오픈타입의 경우, Adobe+MS에서 개발하여 디자인작업에 주로 사용하고 있습니다. 자세한 부분은 "TTF와 OTF의 차이는? 폰트 다운로드 전 확인해보세요" 블로그를 참조 하시면 좋을 것 같네요. 수학 공부를 좀하셨다면, 베지어 곡선을 배우셨을텐데, 딱보면 한눈에 들어옵니다. 
 
 
 
그럼 폰트는 2종류 뿐일까요? MSDN에 접속하여 폰트를 로드하는 함수를 살펴보니 File Extension 이 다음과 같이 나타나 있었습니다. 
 
 
 
총 9개의 폰트가 나와있네요? 폰트에 대해 조금 더 살펴보고 싶지만, 궁금하신 분들을 위해 정리하지 않도록 하겠습니다. ^^;; 위키페이지를 살펴보면 더 잘나오지 않을까 하네요. 
 
 
코드 작성 시 Tip

 
폰트와 관련된 작업을 수행할 때, 아래의 function을 사용하게 되면, 기본적으로 load하는 속도가 느립니다. 
int ret = AddFontResource(_pullPath);
 
그래서 다음과 같은 함수로 교체하여 사용하시면, 현재 사용하고 계신 폰트관리자 툴과 같이 빠른 속도로 폰트를 불러오는 것을 확인 할 수 있습니다. 
int ret = AddFontResourceEx(_pullPath, FR_PRIVATE, 0);
그 외에 아래와 같이 Sendmessage를 사용하게 될 경우, 폰트의 수량이 많으면 SW가 뻗어버리게 됩니다. 이때, 아래 SendNotifyMessage()를 사용하게 되면 함수 호출 후 바로 응답/회신을 받을 수 있습니다. 
// 기본 코드 
::SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);  

// 변경 요청 코드 
SendNotifyMessage(WM_FONTCHANGE,0,0);
 
이부분 외에는 폴더를 탐색하며, 확장자 비교 후 폰트를 불러오시면 됩니다. 나머지는 자기 역량으로...!! 만드시면 됩니다. 
 
 
Reference

 

이 글을 공유하기

댓글(0)

Designed by JB FACTORY