KR101720897B1 - 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램 - Google Patents

글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램 Download PDF

Info

Publication number
KR101720897B1
KR101720897B1 KR1020160026588A KR20160026588A KR101720897B1 KR 101720897 B1 KR101720897 B1 KR 101720897B1 KR 1020160026588 A KR1020160026588 A KR 1020160026588A KR 20160026588 A KR20160026588 A KR 20160026588A KR 101720897 B1 KR101720897 B1 KR 101720897B1
Authority
KR
South Korea
Prior art keywords
character
area
font
characters
difference
Prior art date
Application number
KR1020160026588A
Other languages
English (en)
Inventor
박재홍
Original Assignee
주식회사 윤디자인그룹
박재홍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 윤디자인그룹, 박재홍 filed Critical 주식회사 윤디자인그룹
Priority to KR1020160026588A priority Critical patent/KR101720897B1/ko
Application granted granted Critical
Publication of KR101720897B1 publication Critical patent/KR101720897B1/ko

Links

Images

Classifications

    • G06F17/21
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

본 발명의 일 실시예에 따르면, 폰트 생성 프로그램이 각각의 글자 위치가 조절된 폰트를 생성하는 방법에 있어서, 사용자로부터 특정 폰트로 표시된 복수개의 글자들을 입력받는 단계; 글자 간격 조절의 수행 대상이 되는 제1 글자를 선택하고, 상기 제1 글자와 좌측으로 인접하는 제2 글자 및 우측으로 인접하는 제3 글자의 선택을 수행하는 단계; 상기 제1 내지 제3 글자를 각각 세로로 4등분한 사분각으로 구분하는 단계; 상기 제2 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제1 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제1 면적을 적분하는 단계; 상기 제1 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제3 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제2 면적을 적분하는 단계; 및 상기 제1 면적 및 제2 면적의 차이를 계산한 후, 계산된 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계를 포함하는, 폰트 생성 방법이 제공된다.

Description

글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램{METHOD AND COMPUTER PROGRAM FOR GENERATING FONT BY INTEGRATING SPACE BETWEEN CHARACTERS}
본 발명은 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램에 대한 것으로, 보다 상세하게는 각각의 글자를 사등분하고 사등분한 영역 내에서 글자 부분을 제외한 바깥 영역의 면적을 적분함으로써 이를 통해 시각적으로 균형 잡힌 폰트를 생성하는 방법 및 프로그램에 관한 것이다.
정보통신 기술의 혁명이 시작되면서 현대인들은 인터넷과 떨어질 수 없는 삶을 영위하고 있으며 사람들은 직접 손으로 글씨를 쓰는 것보다는 키보드 또는 터치패드 등을 이용하여 글을 작성하는 경우가 대부분이다.
이러한 시대적 변화에 발맞추어 한글 디지털 폰트의 수요 또한 급증하고 있으며 사용자들이 자신이 선호하는 폰트를 유료로 구매하는 빈도도 증가하고 있다.
따라서 디지털 폰트가 제작되어 출시되는 속도 또한 점점 증가하고 있지만, 디지털 폰트의 제작과정에서는 숙련된 디자이너와 타이포그래퍼의 감각이 주로 이용되고 있는 것이 현실이다. 특히, 폰트를 구성하는 글자들 사이의 적정 간격을 설정하는 방법은 디자이너들과 타이포그래퍼들의 감각적 영역에 큰 비중을 두고 있다.
즉, 폰트를 구성하는 글자와 글자 사이가 시각적으로 균일하지 않을 때에 글자 사이를 눈으로 보고 조절해주어야 하는데, 일반적인 사람들이 보았을 때 해당 폰트로 작성된 글의 각 글자간 간격이 균일하다고 여겨지도록 하기 위해서는 숙련된 전문가의 감각이 필요하다.
기존에도 폰트를 구성하는 글자 간의 간격을 자동으로 조절하기 위한 프로그램들이 개발되어 왔는데, 단순히 글자가 존재하지 않는 글자 사이의 간격을 계산하여 조절할 경우에 수학적 크기는 균일하게 맞출 수 있었지만 시각적인 크기를 동일하게 맞추기에는 어려운 점이 존재하였다.
본 발명은 전술한 종래기술의 문제점을 해결하기 위한 것을 그 목적으로 한다.
본 발명의 목적은 폰트를 구성하는 글자 사이의 시각적 면적을 균일하게 조절하는 것이다.
본 발명의 목적은 폰트를 구성하는 글자들의 분류를 통해 글자들의 커닝 정도를 조절하기 위한 것이다.
상기와 같은 목적을 달성하기 위해, 본 발명의 일 실시예는 폰트 생성 프로그램이 각각의 글자 위치가 조절된 폰트를 생성하는 방법에 있어서, 사용자로부터 특정 폰트로 표시된 복수개의 글자들을 입력받는 단계; 글자 간격 조절의 수행 대상이 되는 제1 글자를 선택하고, 상기 제1 글자와 좌측으로 인접하는 제2 글자 및 우측으로 인접하는 제3 글자의 선택을 수행하는 단계; 상기 제1 내지 제3 글자를 각각 세로로 4등분한 사분각으로 구분하는 단계; 상기 제2 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제1 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제1 면적을 적분하는 단계; 상기 제1 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제3 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제2 면적을 적분하는 단계; 및 상기 제1 면적 및 제2 면적의 차이를 계산한 후, 계산된 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계를 포함하는, 폰트 생성 방법이 제공된다.
상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계는, 상기 제2 글자 및 제3 글자를 변경하는 단계를 반복하여 복수의 글자 조합에 대한 상기 제1 면적 및 제2 면적 차이의 평균을 계산하는 단계를 더 포함할 수 있다.
상기 복수 글자 조합에 대한 제1 면적 및 제2 면적 차이의 평균을 계산한 결과, 제1 면적의 평균이 더 큰 경우에는 상기 제1 글자를 좌측으로 이동시키고, 제2 면적의 평균이 더 큰 경우에는 상기 제1 글자를 우측으로 이동시키는 단계를 더 포함할 수 있다.
상기 제2 글자 및 제3 글자를 변경하는 단계는, 상기 제1 내지 제3 글자의 조합이 국어사전 또는 말뭉치에 포함되는 단어 또는 단어의 일부들로 구성되도록 변경하는 것을 특징으로 할 수 있다.
상기 폰트 생성 방법은, 상기 제1 내지 제3 글자 각각을 복수개의 글자 유형 중 하나로 분류하는 단계; 및 상기 제1 내지 제3 글자의 글자 유형 조합에 따른 상기 제1 면적 및 제2 면적의 차이를 분석하여 그에 따른 커닝 정보를 생성되는 폰트에 추가하는 단계를 더 포함할 수 있다.
상기 글자 유형은 가로모임/민글자, 세로모임/민글자, 섞임모임/민글자, 가로모임/받침글자, 세로모임/받침글자, 섞임모임/받침글자로 구성될 수 있다.
상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계는, 상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 적어도 일부의 길이 또는 두께를 변형하는 단계를 더 포함할 수 있다.
한편, 본 발명의 다른 실시예에 따르면, 글자 위치 조절이 수행된 폰트를 생성하는 폰트 생성 프로그램에 있어서, 사용자의 단말기로부터 특정 폰트로 표시된 복수개의 글자들을 입력받는 단계; 글자 간격 조절의 수행 대상이 되는 제1 글자를 선택하고, 상기 제1 글자와 좌측으로 인접하는 제2 글자 및 우측으로 인접하는 제3 글자의 선택을 수행하는 단계; 상기 제1 내지 제3 글자를 각각 세로로 4등분한 사분각으로 구분하는 단계; 상기 제2 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제1 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제1 면적을 적분하는 단계; 상기 제1 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제3 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제2 면적을 적분하는 단계; 및 상기 제1 면적 및 제2 면적의 차이를 계산한 후, 계산된 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계를 실행시키기 위하여 매체에 저장된 폰트 생성 프로그램이 제공된다.
본 발명의 일 실시예에 따르면, 폰트를 구성하는 각 글자를 4등분하여 앞글자의 마지막 1/4과 뒷글자의 처음 1/4을 합한 공간의 면적값->적분값을 산출함에 따라 시각적 면적을 균일하게 조절할 수 있다.
본 발명이 일 실시예에 따르면, 3개의 글자를 기본 단위로 하여 하나의 글자가 양쪽에 위치한 글자 사이의 관계에서 형성하는 글자 사이 공간의 면적을 비교하고 그에 따라 글자의 위치를 조절함으로써, 보다 효율적인 글자 위치 조절이 가능해질 수 있다.
본 발명의 일 실시예에 따르면, 한글의 모임 구조와 받침을 통해 분류한 글자 분류에 따라 글자들의 커닝 정도를 조절할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 글자 사이를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 글자 몸통과 글자 주변부를 임의적으로 구분하는 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 사분각의 글자 면적을 계산하는 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 글자 사이 면적 차이 계산 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 글자 위치 조절 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 커닝 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 글자 종류 분류 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따라 글자 모양이 조절되는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 폰트 생성 프로그램의 개략적인 구성을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 글자 위치 조절이 수행되는 방법을 나타낸 흐름도이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.
본 명세서 상에서 설명되는 글자 위치 조절 방법은 폰트 생성 프로그램을 통해 수행될 수 있다. 즉, 폰트 제작자는 자신이 제작한 폰트를 프로그램 상에 입력할 수 있으며, 폰트 생성 프로그램은 입력받은 폰트에 포함되는 글자들의 분석을 통해, 글자 위치 자동 조절 및 커닝 정보 생성을 수행하여 폰트 파일을 생성할 수 있다.
이하, 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 글자 사이를 설명하기 위한 도면이다.
도 1의 (a)를 살펴보면, 사전적인 의미의 글자 사이 간격이 나타나 있다. 사전적 의미에서의 글자 사이(d1)는 글자의 일부분 또한 전혀 포함되지 않는 공간을 의미할 수 있다. 기존의 글자 사이 간격 조절 방법에서는 이와 같은 공간의 너비(d1) 등의 거리 계산을 통해 간격 조절을 수행하였다.
도 1의 (b)는 이하 본 명세서 상에서 정의되는 글자 사이의 간격을 설명하기 위한 도면이다. 도 1의 (b)를 살펴보면 글자 사이의 간격(d2)은 글자 몸통을 제외한 글자 주변부를 포함할 수 있다. 이와 같은 방법으로 글자 사이 간격을 정의하는 이유는 사전적인 의미의 글자 간격 대신 이와 같은 글자 사이 간격을 이용함으로써 글자 사이 간격을 보다 “시각적”으로 균형 잡힌 형태로 조절하기 위함이다.
도 2는 본 발명의 일 실시예에 따른 글자 몸통과 글자 주변부를 임의적으로 구분하는 방법을 설명하기 위한 도면이다.
한글, 중국어, 일본어의 폰트는 각 글자들이 동일한 크기를 가지고 있으며 그에 따라 본 발명을 적용하기에 가장 알맞을 수 있다. 반면, 알파벳과 같은 글자는 각 글자마다 상이한 정도의 기본 크기를 가지고 있기 때문에 본 명세서 상에서 기술되는 방법을 적용하더라도 최적의 결과를 얻기 힘들 수 있다.
도 2를 참조하면 특정 폰트로 구현된 각 글자를 내부에 포함하는 사각형, 바람직하게는 정사각형의 영역을 정의한다면, 해당 사각형의 영역은 세로로 4등분될 수 있다. 이하, 4등분 된 글자의 각 부분을 사분각이라고 칭하기로 하며 하나의 글자를 구성하는 사분각 중 가장 왼편에 위치하는 사분각을 제1 사분각(110), 제1 사분각의 오른편에 위치하는 사분각을 제2 사분각(120)으로 칭하기로 한다. 이와 같은 방식에 따르면 하나의 글자를 구성하는 사분각 중 가장 오른편에 위치하는 사분각은 제4 사분각(140)으로 칭해질 수 있다.
도 3은 본 발명의 일 실시예에 따른 사분각에서의 글자 바깥영역 면적을 적분하는 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 글자 사이 간격을 조절하기 위한 전 단계로써 각 글자를 구성하는 사분각에서, 글자 사이의 면적이 적분될 수 있다.
구체적으로, 복수개의 글자가 연이어 작성되어 있을 때, 각 글자의 제1 사분각(110)과 제4 사분각(140)의 전체 면적에서 글자의 획이 차지하는 면적을 차감한 면적이 계산될 수 있다. 본 명세서에서는 이러한 면적 계산을 "적분"이라 칭하기로 한다.
또한, 본 명세서에서는 각 글자의 제1 사분각(110) 및 제4 사분각(140)에서 글자의 획을 제외한 영역을 해당 글자의 “바깥 영역”으로 칭하기로 한다.
종합하여 보면, 각 글자의 제1 사분각(110) 및 제4 사분각(140)에 있어서, 글자의 획이 차지하는 영역을 제외한 나머지 영역에 대한 면적 계산을 “해당 글자에서의 바깥 영역 면적에 대한 적분”으로 칭할 수 있다.
다시, 도 3을 참조하면, 글자의 종류에 따라 바깥 영역의 면적이 상이하게 나타나며 이와 같은 면적 적분을 통해 추후 입력된 문장을 구성하는 글자들 사이의 간격을 조절할 수 있다.
예를 들어, 특정 폰트를 구성하는 각 글자의 크기가 100cm X 100cm 라고 가정하면 하나의 글자의 전체 면적은 10000cm2 가 되며, 각각의 사분각의 면적은 2500cm2 가 될 수 있다. 본 발명에서는 폰트를 구성하는 각 글자의 제4 사분각(140)의 면적에서 글자 부분이 차지하는 면적을 제외한 바깥 영역의 면적 및 제1 사분각(110)의 바깥 영역의 면적을 계산하여 추후 이를 토대로 인접한 글자들간의 글자 사이 면적을 계산할 수 있다.
도 3을 참조하면, “마”, “맘”, “모”, “몸”, “뫄”, “?”에 해당하는 글자들을 각각 사분각으로 나누어, 제1 사분각(110) 및 제4 사분각(140)에서 글자 부분이 차지하는 면적을 제외한 바깥 영역의 면적을 적분한 수치가 표시되어 있다. 즉, 4분각의 면적인 2500cm2에서 글자 부분이 차지하는 면적을 차감한 수치가 각 글자의 제1 사분각(110) 및 제4 사분각(140) 상단에 표시되어 있다. 좌측 상단에 위치한 “마”라는 글자를 살펴보면, 제1 사분각(110)의 바깥 영역은 2031.48cm2로 계산되고, 제4 사분각(140)의 바깥 영역은 2041.41cm2로 계산될 수 있다. 하단 중앙에 위치한 “뫄”라는 글자를 살펴보면, 제1 사분각(110)의 바깥 영역은 2017.86cm2로 계산되고, 제4 사분각(140)의 바깥 영역은 1775.85cm2로 계산될 수 있다. 이와 같이, “마”와 같은 글자는 제1 사분각(110) 및 제4 사분각(140)의 바깥 영역이 큰 차이를 보이지 않으나, “뫄”와 같은 글자는 제1 사분각(110) 및 제4 사분각(140)의 바깥 영역이 상당한 면적의 차이를 갖게 된다.
본 발명의 일 실시예에 따라, 폰트 제작자가 입력하는 글자들 각각에 대한 위치 조절이 수행되는 방법을 설명하면 다음과 같다.
기존의 위치 조절 수행 방법은 두 글자 간의 글자 사이 거리를 토대로 각 글자의 위치가 조절되었다. 다만, 이와 같은 방법을 통해서는 문장을 구성하는 전체적인 글자들의 간격을 조절하는 데에 한계가 존재하였다. 즉, 하나의 글자는 좌측과 우측에 인접한 글자들 사이에 위치하고 있으므로, 두 글자 간의 글자 사이만을 분석하여 위치 조절을 수행하는 방식에는 한계가 존재하였다. 따라서, 본 발명에서는 세 개의 글자를 기본 단위로 하여 글자 사이 간격을 조절함으로써, 시각적으로 균일한 글자 위치 조정이 가능해진다.
이하, 폰트를 구성하는 글자들 중 위치 조정의 수행 대상이 되는 글자는 제1 글자라고 정의하며, 제1 글자의 좌측에 인접하여 위치하게 되는 글자를 제2 글자, 제1 글자의 우측에 인접하여 위치하게 되는 글자를 제3 글자라고 정의하기로 한다. 즉, 제2 글자, 제1 글자, 제3 글자의 순서로 나열되는 상태에서, 중앙에 위치하는 제1 글자의 위치가 제2 글자 및 제3 글자와의 관계를 토대로 결정될 수 있다.
일 실시예에 따르면, 제2 글자의 제4 사분각(140)과 제1 글자의 제1 사분각(110)에서 글자의 획이 차지하는 부분을 제외한 면적을 적분하고, 제1 글자의 제4 사분각(140)과 제3 글자의 제1 사분각(110)에서 글자의 획이 차지하는 부분을 제외한 면적을 적분할 수 있으며, 그 적분의 결과값의 차이를 토대로 제1 글자의 위치를 조절할 수 있게 된다.
이하, 제2 글자의 제4 사분각(140) 및 제1 글자의 제1 사분각(110)에서 글자의 획이 차지하는 부분을 제외한 영역의 넓이를 제1 면적이라고 정의하고, 제1 글자의 제4 사분각(140) 및 제3 글자의 제1 사분각(110)에서 글자의 획이 차지하는 부분을 제외한 영역의 넓이를 제2 면적이라고 정의한다.
본 발명의 일 실시예에 따르면, 폰트 제작자가 신규 폰트에 포함되는 각각의 글자들을 입력하면, 각 글자별로 글자의 위치 조절이 수행될 수 있다. 즉, 각각의 글자는 일정한 크기의 영역인 전각 내에 배치되어 있는데, 해당 영역 내에서 각 글자가 기본적으로 배치되는 위치가 조절될 수 있다. 하나의 제1 글자의 위치 조절이 수행되는 방법을 살펴보면, 제1 글자의 좌측과 우측에 위치할 수 있는 모든 글자의 조합에 대해 제1 면적과 제2 면적이 계산되어, 제1 면적과 제2 면적의 차이값 또한 모든 글자의 조합에 대해 계산될 수 있다. 즉, 하나의 제1 글자의 위치를 조절함에 있어, 한글 글자꼴에서 발생할 수 있는 모든 경우의 글자인 11,172자를 이용하여 조합을 수행하며 면적을 적분하게 된다. 하나의 제1 글자의 위치를 조절하기 위해서는 제1 글자의 좌측에 인접하는 제2 글자가 변화할 수 있는 경우의 수인 11,172와 제1 글자의 우측에 인접하는 제3 글자가 변화할 수 있는 경우의 수인 11,172를 곱한 124,813,584가지 경우의 수에 대한 계산이 수행되어야 한다. 하나의 제1 글자에 대한 경우의 수가 상기와 같은 크기이므로, 폰트에 포함되는 모든 한글 글자꼴에 대한 계산을 수행하기 위해서는 11,172 x 11,172 x 11,172 에 해당하는 조합에 대한 제1 면적 및 제2 면적 적분이 수행되어야 한다.
이와 같은 계산 과정은, 일반 사용자가 폰트를 사용하는 과정에서 수행되는 것이 아닌, 폰트 제작 과정에서 이용되는 것이기 때문에 계산 과정에서 장시간이 소요되어도 큰 문제가 없게 된다.
다른 실시예에 따르면, 하나의 제1 글자에 대해, 인접할 수 있는 제2 및 제3 글자의 모든 한글 글자꼴에 대한 조합 및 면적 계산이 이루어지지 않고, 주로 사용되는 단어에 대한 조합 및 면적 계산이 이루어질 수 있다. 즉 하나의 제1 글자에 대해, 인접하는 제2 및 제3 글자의 선택은 미리 구축되어 있는 데이터베이스에 포함된 단어가 조합되도록 수행될 수 있다. 예를 들어, 제1 내지 제3 글자의 조합이 국어사전에 등재된 낱말 또는 낱말의 일부를 구성하도록 제2 및 제3 글자의 선택이 이루어질 수 있다. 이와 같은 동작을 통해, 평상시에 거의 사용되지 않는 글자 조합에 대한 면적 계산이 이루어지지 않을 수 있으며 그에 따라 실용적인 글자의 위치 조절이 가능해질 수 있다.
도 4는 본 발명의 일 실시예에 따른 글자 사이 면적 차이 계산 방법을 설명하기 위한 도면이다.
도 4를 참조하면, 세 글자의 중앙에 위치한 제1 글자는 “마”이며, 제1 글자의 좌측에 인접하여 위치한 제2 글자는 “뫄”, 제1 글자의 우측에 인접하여 위치한 제3 글자는 “몸”이다.
본 발명의 일 실시예에 따르면, 제1 글자와 제2 글자 사이 면적인 제1 면적과, 제1 글자와 제3 글자 사이 면적인 제2 면적이 각각 계산되어, 제1 면적과 제2 면적의 차이가 제1 글자의 위치를 조절하는데 이용될 수 있다.
도 4에서 제1 글자와 제2 글자 사이 면적의 계산은 제2 글자의 제4 사분각(140)과 제1 글자의 제1 사분각(110)에서 글자의 획 부분을 제외한 바깥 영역의 면적을 적분함으로써 이루어질 수 있다. 도 4의 실시예에서는 상기와 같은 방식으로 계산된 제1 면적이 3807.33cm2로 계산되며, 동일한 방식으로 제1 글자와 제3 글자 사이에 대해 계산된 제2 면적은 4269.18cm2로 계산될 수 있다. 제1 면적에서 제2 면적을 차감한 글자 사이 면적의 차이값은 -461.85cm2이며, 본 발명에서는 이와 같은 글자 사이 면적간 차이를 이용하여 3개의 글자 중심에 위치한 제1 글자에 대한 위치 조절을 수행할 수 있다.
도 4를 통해 계산된 수치를 살펴보면, 제2 면적의 넓이가 제1 면적의 넓이보다 크게 계산된 상태이므로, 제1 글자와 제3 글자 사이가 제1 글자와 제2 글자 사이보다 넓다고 판단할 수 있으며, 그에 따라 제1 글자의 위치가 우측으로 조정되어야 함을 알 수 있게 된다. 다만, “마”에 해당하는 제1 글자의 좌측에 위치할 수 있는 제2 글자와, 우측에 위치할 수 있는 제3 글자의 수는 각각 11,172자가 되므로 이와 같은 경우의 수에 따른 조합별로 제1 면적 및 제2 면적을 계산하고, 제1 면적과 제2 면적간의 차이의 평균을 통해 제1 글자의 위치 조절을 수행하여야 평균적인 측면이 반영된 제1 글자의 위치가 결정될 수 있다.
도 5는 본 발명의 일 실시예에 따른 글자 위치 조절 방법을 설명하기 위한 도면이다.
도 5에 나타나 있는 글자를 제1 글자라고 하면, 전술한 바와 같이 양 옆에 위치하는 제2 글자 및 제3 글자들의 조합에 대해 제1 면적과 제2 면적의 차이가 적분되어 위치가 조절될 수 있다.
도 5의 (a)를 살펴보면, 제1 글자("마")가 중심에서 좌측으로 이동된 것을 볼 수 있으며, 이는 제1 면적과 제2 면적의 차이값들을 계산하였을 때 평균적으로 제1 면적이 더 크게 계산되어 제1 글자("마")의 기본 위치를 좌측으로 이동한 것일 수 있다.
도 5의 (b)를 살펴보면, 제1 글자가 중심에서 우측으로 이동되었으며, 이는 제1 면적과 제2 면적의 차이값들을 계산한 결과, 평균적으로 제2 면적이 더 크게 계산되어 제1 글자("마")의 기본 위치가 우측으로 이동된 것일 수 있다.
도 5에서는 제1 글자의 이동 정도가 다소 과장되어 나타난 바가 있으나, 실제 발명의 수행과정에서는 하나의 제1 글자와 양측에 인접하는 제2 글자 및 제3 글자의 조합의 분석에 따라 계산되는 제1 면적 및 제2 면적 값의 차이를 토대로, 제1 글자의 미세한 위치 조절만이 수행될 수 있다.
도 6은 본 발명의 일 실시예에 따른 커닝 방법을 설명하기 위한 도면이다.
“커닝”이란 특정한 두 글자의 사이를 좁히거나 넓게 조절하여 글자들의 열독성을 향상시키는 방법을 의미한다.
먼저, 도 6의 (a)는, “자”라는 글자와 “마”라는 글자, “사”라는 글자를 단순히 타이핑하였을 경우를 나타내는 도면이며, 도 6의 (b)는 이들 글자에 대해 커닝을 조절해 준 경우를 나타내는 도면이다.
도 6의 (a)를 참조하면, “자”, “마” 사이의 간격과 “마”, “사” 사이의 면적에 차이가 있음을 알 수 있다. 이에 대해 커닝을 수행하면, 도 6의 (b)에 도시되는 바와 같이, “자”, “마” 사이의 간격과, “마”, “사” 사이의 면적이 고르게 조절되어 있음을 알 수 있다.
도 6의 (a)와 (b)에서는 글자 사이의 간격을 원 형태의 크기로 표시하였다.
본 발명에서는 글자 사이 간격을 토대로 각 글자의 위치를 조절하는 단계 후에 각각의 글자 간의 커닝 정보를 생성하는 단계가 추가될 수 있다. 이와 같이 커닝을 수행함에 있어서는 제1 글자 내지 제3 글자 간의 관계가 고려되어야 하는데 제1 글자 내지 제3 글자가 조합되는 모든 경우의 수에 따라 커닝 정도를 고려하기에는 현실적인 어려움이 존재한다.
도 7은 본 발명의 일 실시예에 따른 글자 종류 분류 방법을 설명하기 위한 도면이다.
본 발명에서는 폰트를 구성하는 각 글자를 6종류로 구분하며, 이를 이용하여 글자들의 커닝 정도를 조절할 수 있다.
하나의 글자는 한글의 모임 구조인 가로모임, 세로모임과 섞임모임 중 하나로 분류될 수 있으며, 이와 같이 분류된 세가지 모임꼴을 각각 받침이 없는 민글자와 받침이 있는 받침 글자로 나누면 도 7에서와 같이 여섯가지 모임꼴로 분류될 수 있다. 가로모임은 ‘ㅏ’, ‘ㅑ’,’ㅐ” 등으로 구성되며, 세로모임은 ‘ㅗ’,’ㅠ’ 등으로, 섞임모임은 가로모임과 세로모임이 혼재된 ‘ㅚ’, ‘ㅞ’ 등으로 구성된다.
세 개의 글자로 이루어지는 일 단위에서 중심에 위치하는 제1 글자의 커닝 정도를 조절함에 있어, 제1 글자 내지 제3 글자는 각각 상기 여섯 가지 유형 중 하나로 분류되므로, 제1 글자 내지 제3 글자의 유형이 조합될 수 있는 경우의 수는 6 x 6 x 6으로 216가지가 된다.
일 실시예에 따르면, 제1 면적 및 제 2면적의 차이가 상기와 같이 216가지의 글자 유형 조합 별로 계산되어, 각 경우의 수 별로 커닝이 수행되는 정도가 정해질 수 있다.
다른 실시예에 따르면, 216개의 경우의 수에 따라 결정되는 커닝의 정도가 폰트 제작자에 의해 입력될 수 있다. 이 경우에 폰트 제작자는 216가지의 경우의 수 외에 특정 글자가 인접한 경우에 수행할 별도의 커닝 정도값을 설정할 수도 있다.
도 8은 본 발명의 일 실시예에 따라 글자 모양이 조절되는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 제1 면적 및 제2 면적의 차이에 따라 제1 글자의 위치가 조절되는 방법뿐 아니라, 제1 글자의 모양에 변형이 가해지는 방법으로 글자 사이 면적 차이가 조절될 수 있다. 예를 들어, 제1 면적과 제2 면적의 비교에 있어 제2 면적이 크게 계산될 확률이 매우 크다면, 제1 글자의 제4 사분각에 포함되는 글자 부분이 차지하는 영역이 작은 이유일 가능성이 높기 때문에, 해당 글자의 제4 사분각에 포함되는 글자의 모양이 변형될 수 있다.
일 실시예에 따르면, 상기와 같이 제1 글자의 제4 사분각에 포함되는 획 부분을 확대할 필요가 있는 경우에는 제1 글자에 포함되는 곁줄기의 길이가 연장되거나 그 굵기가 확장될 수 있다.
도 8의 (a)를 살펴보면, 제1 글자의 제4 사분각에 위치하는 곁줄기 의 길이가 점선으로 표시된 영역만큼 연장된 것을 볼 수 있으며, 도 8의 (b)를 살펴보면, 제1 글자의 곁줄기의 두께가 점선으로 표시된 영역만큼 굵어졌음을 알 수 있다.
다른 실시예에 따르면, 도 8에 도시된 것과 반대로 제1 글자에 포함되는 곁줄기의 길이 또는 굵기가 축소되는 방향으로 제1 글자의 변형이 일어날 수도 있다.
다만, 제1 면적과 제2 면적의 비교 결과에 따라 제1 글자의 모양이 변형되는 방법은 상기와 같은 방식들에 한정되지 않으며, 글자 모양이 조절될 수 있는 다양한 방법에 따라 제1 사분각(110) 및 제4 사분각(140)에서 글자 부분이 차지하는 영역의 면적이 변화하도록 글자 모양의 변형이 수행될 수 있다.
도 9는 본 발명의 일 실시예에 따른 폰트 생성 프로그램(200)의 개략적인 구성을 나타낸 도면이다.
일 실시예에 따른 폰트 생성 프로그램(200)은 클라우드 공간에 존재하는 프로그램으로 구현될 수 있다. 이 경우, 사용자는 언제 어디서나 클라우드에 접속하여 폰트 생성 프로그램(200)을 실행시킬 수 있다.
본 발명의 일 실시예에 따르면 폰트 생성 프로그램(200)은 폰트 수신부(210), 제1 내지 제3 글자 조합부(220), 사분각 분할부(230), 글자 면적 계산부(240), 글자 위치 조절부(250), 글자 유형 분류부(260), 커닝 정보 생성부(270), 글자 모양 변형부(280) 및 폰트 파일 생성부(290)로 구성될 수 있다. 폰트 수신부(210), 제1 내지 제3 글자 조합부(220), 사분각 분할부(230), 글자 면적 계산부(240), 글자 위치 조절부(250), 글자 유형 분류부(260), 커닝 정보 생성부(270), 글자 모양 변형부(280) 및 폰트 파일 생성부(290)는 폰트 생성 프로그램(200)의 구성으로서 설명되나, 이를 해당 프로그램이 수행되는 각종 단말기의 측면에서 본다면, 각각의 구성 요소는 단말기에 내에서 각각의 동작을 수행할 수 있도록 하는 프로그램 모듈들로 구비된다고 볼 수 있다. 이러한 프로그램 모듈들은 각 동작을 수행하거나, 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하는 개념이지만, 이에 제한되지는 않는다.
일 실시예에 따른 폰트 수신부(210)는 폰트 제작자로부터 특정 폰트를 구성하는 글자들의 모양을 수신할 수 있다. 폰트 수신부(210)는 폰트 제작자로부터 폰트를 수신하는 과정에서, 폰트 제작자가 설정한 글자들의 커닝 정도에 대한 수치를 입력받을 수 있다. 폰트 제작자는 이 과정에서 폰트에 포함되는 글자들을 자신이 정한 규칙대로 분류하여 커닝 그룹을 설정할 수 있으며, 추후 글자 유형 분류부(260)는 폰트 제작자가 정한 규칙을 토대로 폰트에 포함되는 각 글자의 유형을 분류할 수 있다.
일 실시예에 따른 제1 내지 제3 글자 조합부(220)는 폰트 제작자가 입력한 각 글자들의 위치를 조절함에 있어, 위치 조절의 대상이 되는 제1 글자 와 제1 글자의 좌측에 인접하는 제2 글자 및 제1 글자의 우측에 인접한 제3 글자의 선택을 수행할 수 있다.
제1 내지 제3 글자 조합부(220)가 제1 글자 내지 제3 글자를 각각 선택하여 하나의 조합을 완성하면, 이후 폰트 생성 프로그램(200)의 다른 구성부에 의해 세 글자의 중심에 위치한 제1 글자의 위치 조절이 수행된다. 제1 글자의 위치 조절이 완료되면, 제1 내지 제3 글자 조합부(220)는 제1 글자 내지 제3 글자 중 적어도 하나를 변경하여 새로운 조합을 선택할 수 있다.
일 실시예에 따르면, 상기와 같은 방식으로, 제1 내지 제3 글자 조합부(220)는 한글 글자꼴에서 발생할 수 있는 모든 경우의 글자인 11,172자를 이용하여 조합을 수행할 수 있다.
다른 실시예에 따르면, 제1 내지 제3 글자 조합부(220)는 한글 글자꼴에서 발생할 수 있는 모든 경우의 수를 이용하여 글자들을 조합하는 것이 아닌, 제1 글자 내지 제3 글자의 조합이 국어사전 또는 말뭉치(텍스트가 컴퓨터가 읽을 수 있는 형태로 모아놓은 언어자료로서, 온/오프라인 공간 상에 존재할 수 있음)에 등재된 낱말 또는 낱말의 일부를 구성하도록 제1 내지 제3 글자의 선택을 수행할 수 있다.
일 실시예에 따른 사분각 분할부(230)는 제1 내지 제3 글자 조합부(220)에 의해 선택된 글자들을 세로로 4분할하여 좌측에 위치하는 제1 사분각(110)부터 우측에 위치하는 제4 사분각(140)까지로 분할할 수 있다.
일 실시예에 따른 글자 면적 계산부(240)는 제1 내지 제 3글자로 선택된 글자들의 글자 사이 면적을 계산할 수 있다. 상세하게는, 글자 면적 계산부(240)는 제2 글자의 제4 사분각(140) 및 제1 글자의 제1 사분각(110)을 합한 부분에서 글자의 획이 차지하는 부분을 제외한 바깥 영역의 면적을 적분하여 이를 제1 면적으로 할 수 있으며, 제1 글자의 제4 사분각(140) 및 제3 글자의 제1 사분각(110)을 합한 부분에서 글자의 획이 차지하는 부분을 제외한 바깥 면적을 적분하여 이를 제2 면적으로 할 수 있다.
글자 면적 계산부(240)는 제1 면적 및 제2 면적을 계산한 후에, 제1 면적에서 제2 면적의 차감을 수행함으로써 제1 글자와 제2 글자 사이의 공간과, 제1 글자와 제3 글자 사이의 공간의 차이를 판단할 수 있다. 글자 면적 계산부(240)는 하나의 제1 글자에 대한 복수 글자 조합에 대해, 제1 면적과 제2 면적의 차이를 계산함으로써 제1 글자가 주변 글자들과의 관계에서 평균적으로 형성하는 글자 사이 면적을 도출할 수 있다.
일 실시예에 따른 글자 위치 조절부(250)는 계산된 글자 사이 면적을 통해 글자간의 간격을 조절할 수 있다. 글자 위치 조절부(250)는 하나의 제1 글자의 위치를 정사각형 또는 직사각형 형태로 표시되는 전각 내에서 이동할 수 있는데, 글자 면적 계산부(240)에서 계산된 수치를 토대로 글자 위치의 조절을 수행하게 된다.
글자 위치 조절부(250)가 제1 글자의 글자 위치를 조절하는 방법을 살펴보면, 제1 글자가 중앙에 포함되는 복수개의 글자 조합에 대해 제1 면적과 제2 면적이 계산되었을 때, 평균적으로 제1 면적이 더 큰 경우라면 평균적으로 계산된 면적 차이가 보정되는 수치만큼 제1 글자의 위치를 좌측으로 조절하고, 반대로 제2 면적이 더 큰 경우라면 제2 글자의 위치를 우측으로 조절할 수 있다.
일 실시예에 따른 글자 유형 분류부(260)는 글자 위치가 조절된 이후에, 생성되는 폰트에 커닝 정보를 포함하기 위한 사전 작업을 수행할 수 있다. 글자 유형 분류부(260)는 폰트를 구성하는 글자를 6가지 종류로 구분할 수 있다. 즉, 글자 유형 분류부(260)는 특정 글자가 가로모임, 세로모임, 섞임모임 중 어느 모임꼴을 포함하고 있는지 여부 및 해당 글자가 받침이 있는 받침 글자인지 받침이 없는 민글자인지 여부를 판단함으로써 각각의 글자를 6가지 유형 중 하나로 분류할 수 있다. 다만 이와 같은 유형의 분류는 일 실시예에 따른 것이며, 본 발명의 범위는 이에 제한되지 않는다.
상기의 실시예에 따르면, 글자 유형 분류부(260)는 하나의 글자를 가로모임/민글자, 세로모임/민글자, 섞임모임/민글자, 가로모임/받침글자, 세로모임/받침글자, 섞임모임/받침글자 중 하나의 유형으로 분류할 수 있다.
일 실시예에 따른 커닝 정보 생성부(270)는 글자 유형 분류부(260)에 의해 분류된 글자 유형을 토대로 글자들 간의 커닝 정보를 생성하여 폰트가 생성될 때 커닝 정보를 포함시킬 수 있다. 커닝 정보 생성부(270)는 인접한 글자 간의 유형에 따라 커닝이 수행되는 정도를 수치화하여 이를 생성되는 폰트에 포함시킬 수 있다.
커닝 정보 생성부(270)는 글자 유형 분류부(260)가 분류한 유형에 따라 제1 글자 내지 제3 글자의 유형이 조합될 수 있는 경우의 수를 계산하고, 제1 글자 내지 제3 글자가 조합될 수 있는 모든 조합의 경우에서 계산되는 제1 면적 및 제2 면적의 차이를 토대로 커닝 정도를 결정할 수 있다. 상기의 실시예와 같이 각 글자를 6가지 유형으로 분류한다면, 제1 내지 제3 글자의 유형이 조합될 수 있는 경우의 수는 216가지가 되며, 216가지 경우의 수 각각에 대해 제1 내지 제3 글자를 변경해가며 글자 사이 면적 계산을 수행하여 각각의 경우의 수 별로 평균적인 글자 사이 면적을 계산할 수 있게 된다.
일 실시예에 따른 글자 모양 변형부(280)는 제1 내지 제3 글자의 글자 사이 간 면적 계산, 즉 제1 면적과 제2 면적의 차이를 글자 위치의 이동이 아닌 글자 모양의 변형을 통해 보정할 수 있다.
일 실시예에 따르면, 글자 모양 변형부(280)는 글자를 구성하는 글자의 곁줄기의 길이 및 굵기를 변화시킬 수 있으며, 다른 실시예에 따르면, 글자 모양에서 꺽이는 부분의 각도를 변화시키는 등의 변형을 수행할 수도 있다.
글자 모양 변형부(280)가 글자를 구성하는 곁줄기의 길이 및 굵기를 변화시키는 방법을 살펴보면, 제1 글자와 제2 글자 사이의 면적인 제1 면적이, 제1 글자와 제3 글자 사이의 면적인 제2 면적보다 작은 경우, 제1 글자의 제4 사분각(140)에 포함되는 글자 성분의 굵기 또는 길이를 연장시켜 제2 면적이 줄어들도록 할 수 있으며, 반대로 제1 글자의 제1 사분각(110)에 포함되는 글자 성분의 굵기 또는 길이를 축소시켜 제1 면적이 늘어나도록 할 수도 있다.
일 실시예에 따른 폰트 파일 생성부(290)는 전술한 폰트의 위치 조절 및 커닝 정보 등을 담고 있는 폰트파일을 생성할 수 있다. 폰트 파일 생성부(290)는 폰트 제작자로부터 새로운 폰트의 명칭을 입력 받아 명칭.ttf 파일 등으로 저장할 수 있다.
폰트 생성 프로그램(200)은 상기와 같은 구성부들을 바탕으로 다양한 기능을 폰트 제작자에게 제공할 수 있다. 폰트 생성 프로그램(200)은 폰트 제작자가 자신의 폰트를 프로그램에 입력하면 해당 폰트를 분석하여 글자 사이 간격과 관련된 정보를 제공할 수 있다. 즉, 폰트 제작자가 자신이 제작한 폰트를 입력하면, 전술한 바와 같은 글자 사이 간격 계산을 통해 폰트에 대한 분석 결과를 제공할 수 있다. 이와 같은 분석 결과에는, 인접하는 글자들 과의 관계에서 계산된 특정 글자의 제1 면적 및 제2 면적의 차가 일정한 기준치를 넘었다는 경고가 포함될 수도 있으며, 각 유형별 글자 사이 면적 데이터 등이 포함될 수도 있다.
도 10은 본 발명의 일 실시예에 따른 글자 위치 조절이 수행되는 방법을 나타낸 흐름도이다.
도 10을 참조하면, 폰트 생성 프로그램(200)은 폰트 제작자로부터 신규 폰트에 포함되는 글자들을 이미지 형태로 수신할 수 있다(S1010). 하나의 폰트를 구성하는 복수의 글자들은 각각 일정한 크기의 정사각형 또는 직사각형 형태의 전각 내에 포함될 수 있다.
폰트 생성 프로그램(200)은 폰트 제작자로부터 수신한 글자들의 위치 조절을 위하여, 중앙에 위치한 제1 글자와, 제1 글자의 좌측에 위치한 제2 글자, 제1 글자의 우측에 위치한 제3 글자의 조합을 선택할 수 있다(S1020).
폰트 생성 프로그램(200)은 하나의 제1 글자에 대해 제2 글자 및 제3 글자를 변형해가며 글자 사이 면적 차이를 계산할 수 있다. 폰트 생성 프로그램은 이를 위해 제1 내지 제3 글자를 각각 세로로 4등분하여 각각 제1 사분각 내지 제4 사분각으로 구분할 수 있다(S1030). 일 실시예에 따르면 제1 사분각(110) 내지 제4 사분각(120)의 가로폭 및 면적은 동일하게 구성될 수 있지만, 사용자의 설정 등에 따라 각 사분각은 상이한 가로폭 및 면적으로 구성될 수도 있다.
이후, 폰트 생성 프로그램이 제1 글자 및 이와 좌측으로 인접한 제2 글자 사이의 면적을 계산하는 방법은, 제1 글자의 제1 사분각(110) 및 제2 글자의 제4 사분각(140)에서 글자의 획 부분을 제외한 바깥 영역의 면적을 적분함으로써 수행될 수 있다. 폰트 생성 프로그램(200)은 제1 글자와 제2 글자의 사이 면적인 제1 면적과, 제1 글자와 제3 글자의 사이 면적인 제2 면적을 비교할 수 있으며(S1040), 이와 같은 과정을 제2 글자 및 제 3글자를 변형해가며 수행하여 제1 면적과 제2 면적 차이의 평균을 계산할 수 있다.
폰트 생성 프로그램(200)은 하나의 제1 글자에 대해 상기와 같이 계산된 제1 면적과 제2 면적 차이의 평균을 통해 전각 내에서 제1 글자의 위치를 조절할 수 있다(S1050). 상세하게는, 제1 면적에서 제2 면적을 차감한 값의 평균이 마이너스인 경우에는, 제2 면적이 제1 면적보다 평균적으로 넓은 영역을 차지한다고 판단되므로, 제1 글자를 전각 내에서 우측으로 이동시킬 수 있으며, 반대의 경우에는 제1 글자를 전각 내에서 좌측으로 이동시킬 수 있다. 이 과정에서 제1 글자를 이동시키는 정도는 제1 면적과 제2 면적의 차이를 통해 계산된 평균값의 크기에 따라 결정될 수 있다.
제1 글자의 위치 조절이 수행되고 난 후, 폰트 생성 프로그램(200)은 제1 내지 제3 글자의 유형 관계에 따른 커닝 정보를 추가적으로 생성할 수 있다(S1060). 커닝 정보의 생성을 수행하기에 앞서 폰트 생성 프로그램(200)은 제1 내지 제3 글자 각각의 글자 유형을 파악할 수 있으며, 일 실시예에 따르면 각 글자는 6가지 유형 중 하나로 분류될 수 있다.
제1 내지 제3 글자 유형이 파악되면, 폰트 생성 프로그램(200)은 파악된 글자 유형 조합에 따른 커닝 정보를 생성할 수 있다. 일 실시예에 따르면 폰트 생성 프로그램(200)은 제1 내지 제3 글자의 글자 유형이 조합되는 조합별로 각각의 글자 사이의 면적을 계산하여, 각각의 글자 유형 조합에 있어 커닝이 수행되는 정도를 결정할 수 있다.
폰트 생성 프로그램(200)은 폰트를 이루는 모든 글자에 대한 글자 위치 조절 정보 및 글자 유형에 따른 커닝 정보가 생성되면, 이와 같은 정보를 포함하는 폰트 파일을 생성할 수 있다(S1070).
추가적으로, 폰트 생성 프로그램(200)은 하나의 제1 글자에 대해 분석된 제1 면적 및 제2 면적의 차이를 토대로, 해당 글자의 모양을 변형할 수도 있다. 글자 모양의 변형은 글자를 구성하는 곁줄기의 굵기 및 길이의 확장 또는 축소의 형태로 수행될 수 있으며, 글자의 모양 자체가 변형될 수도 있다.
이와 같이, 본 발명의 실시예들에 따르면 글자 사이의 간격을 면적을 통해 계산하는 방법을 통해 사전적 의미의 글자 사이 간격 조절이 아닌, “시각적 크기”가 균일하도록 위치가 조절된 글자들이 생성될 수 있으며, 그 과정에서 사분각을 이용함으로 인해 폰트를 구성하는 글자들의 위치 조절 과정을 수월하게 구현할 수 있다.
설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 클라우드 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
110: 제1 사분각
120: 제2 사분각
130: 제3 사분각
140: 제4 사분각
200: 폰트 생성 프로그램
210: 폰트 수신부
220: 제1 내지 제3 글자 조합부
230: 사분각 분할부
240: 글자 면적 계산부
250: 글자 위치 조절부
260: 글자 유형 분류부
270: 커닝 정보 생성부
280: 글자 모양 변형부
290: 폰트 파일 생성부

Claims (8)

  1. 폰트 생성 프로그램이 각각의 글자 위치가 조절된 폰트를 생성하는 방법에 있어서,
    사용자로부터 특정 폰트로 표시된 복수개의 글자들을 입력받는 단계;
    글자 간격 조절의 수행 대상이 되는 제1 글자를 선택하고, 상기 제1 글자와 좌측으로 인접하는 제2 글자 및 우측으로 인접하는 제3 글자의 선택을 수행하는 단계;
    상기 제1 내지 제3 글자를 각각 세로로 4등분한 사분각으로 구분하는 단계;
    상기 제2 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제1 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제1 면적을 적분하는 단계;
    상기 제1 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제3 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제2 면적을 적분하는 단계; 및
    상기 제1 면적 및 제2 면적의 차이를 계산한 후, 계산된 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계를 포함하는, 폰트 생성 방법.
  2. 제1항에 있어서,
    상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계는,
    상기 제2 글자 및 제3 글자를 변경하는 단계를 반복하여 복수의 글자 조합에 대한 상기 제1 면적 및 제2 면적 차이의 평균을 계산하는 단계를 더 포함하는, 폰트 생성 방법.
  3. 제2항에 있어서,
    상기 복수 글자 조합에 대한 제1 면적 및 제2 면적 차이의 평균을 계산한 결과, 제1 면적의 평균이 더 큰 경우에는 상기 제1 글자를 좌측으로 이동시키고, 제2 면적의 평균이 더 큰 경우에는 상기 제1 글자를 우측으로 이동시키는 단계를 더 포함하는, 폰트 생성 방법.
  4. 제2항에 있어서,
    상기 제2 글자 및 제3 글자를 변경하는 단계는, 상기 제1 내지 제3 글자의 조합이 국어사전 또는 말뭉치에 포함되는 단어 또는 단어의 일부들로 구성되도록 변경하는 것을 특징으로 하는, 폰트 생성 방법.
  5. 제1항에 있어서,
    상기 제1 내지 제3 글자 각각을 복수개의 글자 유형 중 하나로 분류하는 단계; 및
    상기 제1 내지 제3 글자의 글자 유형 조합에 따른 상기 제1 면적 및 제2 면적의 차이를 분석하여 그에 따른 커닝 정보를 생성되는 폰트에 추가하는 단계를 더 포함하는, 폰트 생성 방법.
  6. 제5항에 있어서,
    상기 글자 유형은 가로모임/민글자, 세로모임/민글자, 섞임모임/민글자, 가로모임/받침글자, 세로모임/받침글자, 섞임모임/받침글자로 구성되는 것을 특징으로 하는, 폰트 생성 방법.
  7. 제1항에 있어서,
    상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계는,
    상기 제1 면적 및 제2 면적의 차이를 토대로 상기 제1 글자의 적어도 일부의 길이 또는 두께를 변형하는 단계를 더 포함하는, 폰트 생성 방법.
  8. 글자 위치 조절이 수행된 폰트를 생성하는 폰트 생성 프로그램에 있어서,
    사용자의 단말기로부터 특정 폰트로 표시된 복수개의 글자들을 입력받는 단계;
    글자 간격 조절의 수행 대상이 되는 제1 글자를 선택하고, 상기 제1 글자와 좌측으로 인접하는 제2 글자 및 우측으로 인접하는 제3 글자의 선택을 수행하는 단계;
    상기 제1 내지 제3 글자를 각각 세로로 4등분한 사분각으로 구분하는 단계;
    상기 제2 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제1 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제1 면적을 적분하는 단계;
    상기 제1 글자의 오른편 끝에 위치하는 제4 사분각 및 상기 제3 글자의 왼편 끝에 위치하는 제1 사분각에서 글자의 획 부분을 제외한 제2 면적을 적분하는 단계; 및
    상기 제1 면적 및 제2 면적의 차이를 계산한 후, 계산된 면적의 차이를 토대로 상기 제1 글자의 위치를 조절하는 단계를 실행시키기 위하여 기록 매체에 저장된 폰트 생성 컴퓨터 프로그램.
KR1020160026588A 2016-03-04 2016-03-04 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램 KR101720897B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160026588A KR101720897B1 (ko) 2016-03-04 2016-03-04 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026588A KR101720897B1 (ko) 2016-03-04 2016-03-04 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램

Publications (1)

Publication Number Publication Date
KR101720897B1 true KR101720897B1 (ko) 2017-04-10

Family

ID=58581237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026588A KR101720897B1 (ko) 2016-03-04 2016-03-04 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램

Country Status (1)

Country Link
KR (1) KR101720897B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04216594A (ja) * 1990-12-17 1992-08-06 Integuraru Syst:Yugen 文字間隔調整方式
JP2007179055A (ja) * 2005-12-21 2007-07-12 Xerox Corp 可変テキスト・データの差光沢フォント・イメージ・セットを生成するための方法
KR20080078844A (ko) * 2005-12-19 2008-08-28 마이크로소프트 코포레이션 획 대비 제어 방법 및 획 대비 제어 시스템
KR101344457B1 (ko) * 2012-06-21 2013-12-26 (주)한양정보통신 글리프를 이용해 폰트를 생성하는 폰트 생성 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04216594A (ja) * 1990-12-17 1992-08-06 Integuraru Syst:Yugen 文字間隔調整方式
KR20080078844A (ko) * 2005-12-19 2008-08-28 마이크로소프트 코포레이션 획 대비 제어 방법 및 획 대비 제어 시스템
JP2007179055A (ja) * 2005-12-21 2007-07-12 Xerox Corp 可変テキスト・データの差光沢フォント・イメージ・セットを生成するための方法
KR101344457B1 (ko) * 2012-06-21 2013-12-26 (주)한양정보통신 글리프를 이용해 폰트를 생성하는 폰트 생성 장치 및 방법

Similar Documents

Publication Publication Date Title
JP6840132B2 (ja) デジタルノートテイキングのシステムおよび方法
US10417316B2 (en) Emphasizing a portion of the visible content elements of a markup language document
US20150199567A1 (en) Document classification assisting apparatus, method and program
US20140176564A1 (en) Chinese Character Constructing Method and Device, Character Constructing Method and Device, and Font Library Building Method
TWI475406B (zh) 取決於上下文之輸入方法
US8559723B2 (en) Letter model and character bigram based language model for handwriting recognition
CN110770735B (zh) 具有嵌入式数学表达式的文档的编码转换
CN106980620B (zh) 一种对中文字串进行匹配的方法及装置
JP2023039888A (ja) モデルトレーニング及び字庫作成の方法、装置、機器、及び記憶媒体
KR20090024127A (ko) 필기 인식 개선 방법, 컴퓨터 판독가능 매체, 및 필기 인식기의 동작 개선 방법
JP7450868B2 (ja) タッチベースユーザインターフェース入力におけるジェスチャーストローク認識
Jiang et al. Intelligent understanding of handwritten geometry theorem proving
CN114359943A (zh) Ofd版式文档段落识别方法及装置
Mondal et al. Comparative study of conventional time series matching techniques for word spotting
JP2016027493A (ja) 文書分類支援装置、方法及びプログラム
KR101720897B1 (ko) 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램
Dölek et al. A deep learning model for Ottoman OCR
Cramer Post-digital literary studies
KR20200078454A (ko) 딥러닝 모델 기반 키보드 오타 보정 방법 및 시스템
JP7043670B1 (ja) 文字列抽出装置、文字列抽出方法、および文字列抽出プログラム
CN101366017A (zh) 基于逻辑结构和布局的脱机字符识别
CN109478200B (zh) 利用外廓线字体的通过元字形生成字体的装置及方法
US7929768B2 (en) Cursive handwriting recognition with hierarchical prototype search
Koushik et al. Sign language interpreter using inception v2 and faster r-CNN
US20240184494A1 (en) Method, electronic device, and storage medium for adjusting document style

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 4