NanumGothicHangSimple.ttf

NanumGothicHangSimple.woff



NanumGothicHangSimple2.ttf

NanumGothicHangSimple2.woff




전 글에서 http://yiunsr.tistory.com/714  폰트를 줄이는 방법을 알아봤다.

그 상태에서 폰트 손실이 발생하지만 더 줄이는 방법이 있다. fontforge의 simplify 기능(https://fontforge.github.io/elementmenu.html#Simplify) 을 이용하면 glyph 모양이 달라지긴 하지만 더 용량이 줄어든다. Simplify 동작은 https://fontforge.github.io/pfaeditmath.html#Approximating 에 있는 것처럼 정보를 삭제하기 때문에 폰트 가독성이 떨어질 수 있다. 특히, 폰트 크기가 작을수록 더 심해질 것이다. 




#-*- coding: utf-8 -*-

import traceback


import fontforge;

import unicodedata2


def filtering_simple():

    try:

        print "== Open File =="

        font = fontforge.open("NanumGothicHang.ttf")

        for index in font :

            item = font[index]

            if item.unicode == -1:

                continue

            ch = unichr( item.encoding )

            if unicodedata2.script( ch ) not in ( 'Common', 'Latin', 'Hangul' ) :

                continue

            item = item.simplify()

            item = item.validate(True)

        flags  = ("opentype",  "apple")

        font.generate("NanumGothicHangSimple.ttf", flags=flags )

        font.generate("NanumGothicHangSimple.woff", flags=flags )

        print "== Close File =="

    except Exception as e:

        print traceback.format_exc() 

        

    return font


if __name__ == "__main__": 

    print "======== FF Start ========"

    filtering_simple()

    print "======== FF END ========"



위 과정을 거치고 지난 글 처럼 PS Glyph Name 제거하면 최종적으로 아래와 같이

줄어든다.





 NanumGothic.ttf

 원본 파일

 4.14MB 

 NanumGothicHang.ttf

일부 Character 제거 

 2.33MB

 NanumGothicHangSimple.ttf

 일부 Character 제거 + Simplify

 1.67MB

 NanumGothicHangSimple2.ttf

  일부 Character 제거 + Simplify

+ PS Glyph Name 제거

 1.52MB



 NanumGothic.woff

 원본 파일

 2.35MB 

 NanumGothicHang.woff

일부 Character 제거 

 1.01MB

 NanumGothicHangSimple.woff

 일부 Character 제거 + Simplify

 636KB

 NanumGothicHangSimple2.woff

  일부 Character 제거 + Simplify

+ PS Glyph Name 제거

 576KB



 폰트를 줄이기 위해서는 기술적인 문제외에도 라이센스문제도 따져봐야한다. 나눔폰트의 경우 OFL이기 때문에 폰트를 수정하는 것은 문제가 되지 않으나, 일반 상용폰트의 경우 구매를 한다고 해도 수정을 허용하지 않는 경우가 대부분이다. 따라서 폰트 라이센스도 꼭 확인이 필요하다.