...
본문 바로가기

iOS

커스텀 폰트 용량 줄이기 - iOS


기존의 출시한 앱이 굉장히 앱 사이즈가 컸다
그때 당시에는 신경을 안썼었다. ( 신경 쓸 생각조차 나지 않았었다 )
하지만 어느 순간 부터 메모리용량도 신경쓰게 됐고,
문득 내 앱을 보니 무슨.. 엄청난 어플도 아닌데 100MB 가까이 차지하고 있었다.

지금 계속해서 리팩토링 중인데 굳이 사용하지 않아도 되는 외부 라이브러리를 삭제하고, 필요없는 코드들도 최대한 줄이고 있는데,  꽤 많이 줄어들었다. ( 코드도 약 천오백줄 줄일 수 있었다 )

그리고 대망의 폰트가 남아있었다
특히 서울한강체는 하나당 10MB나 차지한다!
내 앱은 그외 두개 더 추가적으로 사용하고 있었는데 그녀석들은 하나당 1MB 정도 차지하고 있었다.
여튼 서울한강체는 버리던가 추가적인 조치가 무조건 필요해보였다.

찾아보니 웹사이트로 폰트 로드해서 줄여주는 곳도 있었지만 영 별로여서 다른 걸 찾다보니, 파이썬을 통해서 줄일 수도 있다는걸 발견했다

파이썬의 fontTools 라이브러리를 이용해서 줄일 수 있다. 이것의 장점이라면 훨씬 간단하기도 하고, 특정 유니코드들만 적용하여 용량을 줄일 수 있고, 또는 특정 글자들만 적용시켜서 아주 획기적으로 줄일 수 있다.  

현재 맥북에 파이참이 깔려있었고,  파이참에서 fontTools를 설치하고, 다음과 같은 명령어로 폰트들을 뽑을 수 있다. 

 

파이참의 터미널에서 다음과 같이 명령어를 입력하면,

유니코드0020~007E,  AC00~D7AF까지 적용하여, seoulHangangEB.otf 파일이 mySmallerFont.ttf로 변환된다. 

pyftsubset seoulHangangEB.otf --output-file=mySmallerFont.ttf --unicodes=U+0020-007E,U+AC00-D7AF


추가적으로 특정 문자만 적용하고 싶다면,txt파일에 문자들을 작성하고,  --text-file= **.txt 로 추가할 수 있다. 

자세한 옵션들은 아래에서 확인할 수 있다. 

https://fonttools.readthedocs.io/en/latest/subset/index.html

나는 모든 한글에 대해서 폰트가 지원하기를 바랬으므로, 유니코드를 많이 추가시켜서 그런지 애초에 용량이 크지 않았던 폰트는 1MB에서 900KB정도로 줄었다. 하지만 용량이 큰 서울체는 10MB에서 4MB로 줄일 수 있었다

덕분에 기존앱에서 폰트만으로 16MB나 줄일 수 있었다.

 

 

 


 

참고 

https://www.python2.net/questions-1230009.htm

 

fonts : .ttf 글꼴의 크기를 줄이는 방법은 무엇입니까?

.ttf 글꼴의 크기를 줄일 수있는 방법이 있습니까? 즉, 사용하지 않는 glyps를 제거하려는 경우.

www.python2.net

https://vateran.tistory.com/20

 

TTF 용량 노가다 없이 줄이는 확실한 방법

요약 정리 1. python 을 설치한다. 2. https://pypi.python.org/pypi/FontTools 을 다운받는다. 3. 압축을 풀고 윈도우 '명령 프롬프트'(도스창) 에서 해당 디렉토리로 이동 후, setup.py install 을 친다. 그러..

vateran.tistory.com