본문 바로가기
iOS

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

by vapor3965 2021. 9. 1.

목차


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

     

    댓글