KR960013368B1 - 아우트라인(outline) 폰트의 형성방법 - Google Patents
아우트라인(outline) 폰트의 형성방법 Download PDFInfo
- Publication number
- KR960013368B1 KR960013368B1 KR1019920022936A KR920022936A KR960013368B1 KR 960013368 B1 KR960013368 B1 KR 960013368B1 KR 1019920022936 A KR1019920022936 A KR 1019920022936A KR 920022936 A KR920022936 A KR 920022936A KR 960013368 B1 KR960013368 B1 KR 960013368B1
- Authority
- KR
- South Korea
- Prior art keywords
- phoneme
- information
- data
- basic component
- forming
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Abstract
내용없음.
Description
제1도는 한글 명조체 폰트중 일예를 도시한 것이다.
제2도는 한글 명조체 폰트중 유사형태를 가지는 예를 도시한 것이다.
제3도는 한글 명조체 자모중 특징적인 기본줄기들 도시한 것이다.
제4A도 내지 제4C도는 한글 초성 자소인 'ㄱ'을 이루는 특징적인 부분과 특징적인 부분을 이루는 점에 대한 좌표를 도시한 것이다.
제5도는 특징적인 부분 즉 기본성분을 곡선으로 연결하여 한글 'ㄱ' 자소를 형성한 것을 도시한 것이다.
제6도는 제5도에 도시된 자소 'ㄱ'을 이루는 각 점들에 대한 좌표를 도시한 것이다.
제7도는 자소를 포함하는 박스가 좌표(36,195,565,818)로 주어져 있을 도시한 것이다.
제8도는 박스에 대한 좌표표시를 도시한 것으로서, 박스의 좌표는 (x1,y1,x2,y2)로 주어진다.
제9도는 자소의 크기변형을 위한 새로운 박스이 좌표를 (36,195,618,761)로 주어짐을 도시한 것이다.
제10도는 '자소변형 생성방식'을 거쳐 자소의 크기 변형이 일어나 새로운 크기의 자소가 생성된 것을 도시한 것이다.
제11도는 새로운 자소에 대한 좌표를 도시한 것이다.
제12도는 제11도에 도시된 새로운 좌표의 변형 과정에 대한 식을 도시한 것이다.
제13a도는 글자 '갈'의 초성, 중성, 종성이 위치할 박스를 도시한 것이다.
제13b도는 박스에 자소가 채워진 상태를 도시한 것이다.
제14도는 본 발명에 따른 아우트라인 폰트형성방법의 일예를 설명하기 위한 흐름도이다.
본 발명은 폰트 생성방법에 관한 것으로, 특히 각각의 문자에서 특징부분만을 분리하고 분리된 각 성분을 이용하여 다양한 폰트를 형성하는 아우트라인 폰트 형성방법에 관한 것이다.
일반적으로, 디지털폰트를 제작하기 위해서는 우선 디지털화 작업의 표본이 되는 원도(原圖)가 있어야하고 이를 디지털화하기 위한 프로그램이 필요하다. 그러나, 한글이나 한자의 경우 영어와는 달리 네모틀속에 자소(날글자)를 모아쓰기 해서 하나의 글자를 완성하는 것이 정설로 돼 있어 영문자인 알파벳이나 일문자인 가나에 비해 수십 내지 수백배의 노력이 필요하다.
또한, 작성되어야 하는 각 문자의 수에 대한 수량적인 측면만으로도 알파벳이나 가나는 기껏해야 하나의 문자체에 대하여 50여자에서 1백여자의 글자원도만 있으면 되는데 반하여 한글은 24자의 날글자는 물론 최소 2천 3백 50자에서 최고 1만 1천 72자의 원도를 가지고 있어야 한다.
더욱이 한글은 알파벳이나 가나에 비해 글자구성이 복잡해 가독성(可讀性)과 조형미를 동시에 살려내기가 여간 힘든게 아니다. 이러한 이유는 한글을 구성하는 각 자소(날글자)들의 크기나 공간배치가 글자마다 달라지게 되어있으나 알파벳이나 가나의 경우에는 어떤 위치에서든 각 자소(날글자)들의 모양이 동일하기 때문이다.
또한, 이와 같은 복잡한 과정을 거쳐 생성된 원도의 폰트를 디지털화하는 작업은 작성되어야하는 글자들의 수가 많으므로 비례적으로 많은 시간을 요하고 이에 따라 작성된 각 폰트를 저장하는 메모리의 양도 많아지게 된다.
그리고 동일한 글자에 대하여 각각 다른 형태의 폰트, 예를 들어, 세명조, 선명조, 신문명조, 견출명조, 중명조, 중고딕, 태고딕, 견출고딕, 신문고딕, 궁서체등과 같은 형태의 개별적인 폰트를 가지고 있어야하므로 여러가지의 폰트를 제작하기 위해서는 엄청난 비용과 시간이 필요하였다.
또한, 폰트와 이러한 폰트의 형성방법으로서 기존에 이미 사용되고 있는 마이크로소프트(Microsoft)나 애플(Apple)사의 트르우 타입(true type)의 폰트나 아도비(Adobe)사의 포스트스크립트(postscript)를 취급하는 방법을 한글에 적용시키기에는 위에서 기술한 바와 같은 문제점때문에 영어문자에서 사용되는 기법을 동일하게 적용시키기에 곤란할 뿐만 아니라 영문의 경우에 있어서도 구현되는 각각의 폰트들이 각각의 자형들에 대하여 위치정보와 개별적인 변형정보 및 많은 수의 명령어(instruction stream)들을 테이블 형태로 가지고 폰트화일의 형태로 구현되고 있는데 이 또한, 상기에서 언급한 문제점을 해결하지 못하고 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 한글을 구성하는 기본적인 각각의 자소를 특징적인 부분(이하, 기본성분이라함)으로 나누어 이러한 기본성분 데이터의 변형과 결합을 통하여 다양한 폰트를 형성할 수 있는 아우트라인폰트 형성방법을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하기 위한 본 발명에 따른, 키보드 등의 입력수단에 의한 문자코드 또는 파일등의 형태로 입력되는 글자를 이루는 자소에 관한 자소정보(초성, 중성, 종성, 기본성분, 크기, 위치 및 기타 사용자 제어정보 등)를 이용하여 아우트라인폰트를 형성하는 방법은 상기 입력된 자소정보를 추출하는 자소정보 추출단계; 상기 추출된 자소정보로부터 자소를 구성하는 기본성분 데이터와 해당 기본성분 데이터의 변형정보와 새로 생성될 자소의 박스 정보를 기본성분 데이터를 저장한 메모리(혹은 데이터베이스, 파일)와 변형정보 데이터를 저장하고 있는 메모리(혹은 데이터베이스, 파일)로부터 페치하는 단계; 상기 페치한 변형정보에 따라 자소를 이루는 기본성분 데이터 각각을 변형하는 단계; 상기 변형된 각 기본성분들을 서로 연결하여 새로운 형태의 자소를 형성하는 자소형성단계; 및 형성된 자소를 하나의 글자로 형성하는 글자형성 단계를 포함함이 바람직하다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 제1도는 한글폰트의 명조체중 한 글자인 경을 도시한 것이다. 한글은 자음과 모음으로 이루어지고 이 자음과 모음이 초성, 중성 및 종성으로 결합하여 하나의 글자를 형성하도록 되어있으며 이러한 글자를 컴퓨터를 통하여 표현하는데 있어서 상하 좌우 일정한 크기의 박스안에 표시되도록 되어있다.
그래서, 동일한 자음과 모음이더라도 각각의 초성, 중성 또는 종성중 어느 위치에 놓이는 가에 따라서 크기가 다르게 되어있다(예, 가와 각…동일한 자음 ㄱ에 대해서도 그 위치가 초성, 중성 및 종성에서 사용될 때의 크기가 다르게 나타남). 따라서 이들의 조합에 의하여 형성되는 글자의 수는 기하급수적으로 증가하게되고 이러한 글자들의 폰트들을 저장하는데 필요한 메모리의 크기도 비례하여 증가된다.
그러나, 상기에서와 같은 형식에 의하여 표현된 각 글자들의 모양을 보다 세분하여 살펴보면 서로 유사형태를 가지는 것을 알 수 있는데, 이러한 글자들의 일예를 제2도를 참조하여 살펴보면 다음과 같다.
제2도에서 도시된 가, 라 및 마의 경우에 있어서, 각 글자 전체로 보면 서로 상이한 형태를 가지지만, 이 글자들을 각각 자음과 모음으로 나누어서 생각하면 가, 라 및 마에서 초성을 이루고 있는 ㄱㄹㅁ의 자음중에서 처음 시작부분(첫돌기)의 거의 동일하고 ㄱ의 꺾여지는 부분이 ㄹ과 ㅁ에서의 꺾어지는 부분과 거의 유사 내지 동일한 형태를 가지는 것을 알 수 있다. 그리고 ㄱ에서의 처음부분과 꺾어지는 부분 사이의 형태(가로줄기)가 ㄹ에서와 ㅁ에서의 대응 부분과 거의 동일한 형태를 가짐을 알 수 있다.
위의 예에서는 가, 라 및 마를 예로서 설명을 하였지만, 다른 예로서 가와 강에서의 중성부분을 살펴보면 종성부분이 없는 ㅏ와 종성부분이 있는 ㅏ의 경우에서도 비록 전체적인 길이의 경우에는 차이가 있지만 이를 각 특징적인 구성부분 즉 기본성분은 모든 자소에서 동일한 형상을 가짐을 알 수 있다.
여기서 먼저 본 발명의 개념을 나타내는 중요한 용어 중의 하나인 기본성분을 상세히 설명하기로 한다.
제4a도, 제4b도 및 제4c도는 한글 초성 자소인 ㄱ을 이루는 특징적인 부분과 상기 특징적인 부분을 이루는 점에 대한 좌표를 도시하고 있다. 여기서 [ ]안의 숫자는 점에 대한 범호를 나타내고, ( )안의 숫자는 좌표의 x축과 y축의 좌표를 나타낸다. 이러한 특징적인 부분이 기본성분이다. 그리고 이러한 특징적인 부분을 곡선으로 연결하여 한글 ㄱ자소를 헝성한 것이 제5도이다. 일반적으로 자소는 이러한 특징적인 요소인 기본성분을 상기와 같이 적절히 연결하며 제작된다. 이렇게 연결하는 곡선은 제5도에서는 점1에서 출발하여 점2,3,4,5,6,7을 지나 점8까지 연결하는 곡선과 점11에서 출발하여 점12,13,14,15,16을 지나 점17까지 연결하는 곡선이다. 실제로 상기 곡선은 이러한 점들을 지나는 큐빅 스플라인(cubic spline)곡선을 계산하여 구해진다. 상기 큐빅 스플라인 방법은 주어진 점들을 연결하기 위한, 수치해석에서 널리 알려진 방법이다. 여기서는 설명을 명확하게 하기 위해, 제4a, 4b, 4c도에 도시된 점의 번호와 좌표는 제5도에 도시된 바와 같은 제작된 자소에서 얻어진 점의 번호와 좌표를 그대로 표시하고 있다. 그리고 제6도는 상기 제5도에 도시된 자소 ㄱ을 이루는 각 점들에 대한 좌표를 도시한 것이다.
이와같은 개념을 기초로하여 한글 자모를 형태별로 그 모양을 분류해보면 한글 명조체 자모중 특징적인 기본줄기들을 제3도와 같이 도시할 수 있다. 즉 그 특징적인 기본줄기를 기본으로 하여 자모 각각을 특징부분으로 분리하면, 한글의 자모를 구성하는 부분이 많지 않음을 알 수 있다. 이와 같이 특징부분으로 분리된 각 기본성분 데이터를 이용하여 서로 조합하면 적은 수의 기본성분 데이터를 가지고 기존의 모든 글자를 구현할 수 있으며 서체가 바뀌는 경우에도 해당 서체에 대한 소수의 기본성분 데이터만을 가지고 있다면 표현하는데는 전혀 문제가 없음을 알 수 있다. 다만 자소의 크기는 매우 다양하게 나타나기 때문에 소수의 자소만 가지고는 좋은 품질의 글자를 조합하는데는 한계가 있다.
일반적으로 기본성분을 나타내는 기본적인 데이터들은 위치데이터인 좌표형태로 주어지므로, 데이터의 변형은 상기 기본성분 데이터의 위치데이터와 변형정보 데이터(변형정보를 나타내는 행렬의 계수, 행렬이 작용하는 점과 좌표의 범위등) 및 데이터 입력수단에 의하여 주어지는 사용자의 정의 제어데이터간의 행렬연산등의 과정을 통하여 통상적으로 이루어질 수 있으며, 이러한 연산을 통하여 새로운 크기의 자소를 생성하게 된다.
이와 같은 관점에서 기본성분의 결합으로 만들어진 자소를 다른 크기로 변형하는 방법을 일예를 들어 상세히 설명하면 다음과 같다. 여기서 '박스(Box)'라는 용어를 사용하게 되는데, 상기 박스는 직사각형을 말하며, 상기 박스에 대한 좌표표시는 제8도에 도시된 바와 같이 한다. 즉 박스의 왼쪽-위(left-top) 점의 좌표가 (x1,y1)이고 오른쪽-밀(right-bottom)점의 좌표가 (x2,y2)라 하면, (x1,y1,x2,y2)를 상기 박스의 좌표로 한다.
먼저 제7도에 도시된 바와 같이 자소를 포함하는 박스가 좌표(36,195,565,818)로 주어져 있고, 자소의 크기 변형을 위한 새로운 박스가 제9도에서와 같이 좌표(36,195,618,761)로 주어지면, 아래에서 기술될 '자소변형 생성방식'을 통해 자소의 크기 변형이 일어나 제10도에 도시된 바와 같은 새로운 크기의 자소가 생성된다. 상기 새로운 자소에 대한 구체적인 좌표는 제11도에 도시된 바와 같다.
상기 '자소변형 생성방식'은 다음과 같이 이루어진다.
제1단계
제4A도에 도시된 기본성분을 기본성분 A, 제4b도에 도시된 것을 기본성분 B, 제4C도에 도시된 것을 기본성분 C라 한다. 상기 기본성분 A를 포함하는 박스의 좌표는 (115,205,310,270)로 주어진다. 여기서 기본성분 A를 대표하는 대표점(역시 A점이라 부름)의 좌표는 (180,230)으로 주어져 있다. 이와 같은 과정을 기본성분 B와 C에서도 반복한다. 기본성분 B의 박스은 (410,196,564,256)이고, 기본성분 C의 박스는 (37,791,90,816)이다.
제2단계
제5도에서 각 성분을 대표하는 대표점을 포함하는 박스(70,230,513,800)를 구비한다. 이것이 제7도에 표시된 안쪽의 박스이다. 상기 박스의 좌표와 제1단계에서 구한 3개의 박스 중 제일 바깥에 위치한 박스를 안쪽에 포함하도록 제9도의 안쪽 박스를 구한다. 제9도의 박스를 구하는 방법은 다음과 같다. 제9도의 안쪽 박스는 (69,229,567,745)로 좌표가 주어져 있는데 이중 좌표 69를 설명하기로 한다. 박스 C는 제9도에서 제일 아래, 왼쪽에 치우쳐 있다. 바꿔 말하면 박스 C가 제9도의 안쪽박스(69,229,567,745)를 최소 x좌표, 최대 y좌표를 결정한다. 이 때 대표점 C의 x좌표는 C의 박스에서 70-37=33 만큼 오른쪽에 있다.
따라서 새로운 점 C'의 x좌표는 36+33=69로 주어지고 이것이 제9도의 안쪽 박스의 좌표(69,229,567,745)의 69를 결정한다. 마찬가지로 229, 567, 745를 상기와 같은 방식으로 결정할 수 있다.
제3단계
제9도의 안쪽 박스의 좌표(69,229,567,745)가 제2단계에서 구해지면, 이를 상기에서 계산된 (제7도 참조) 원래 자소의 안쪽 박스(70,230,513,800)과 비교한다. 이것으로부터 x,y 방향의 확대, 축소비율을 결정할 수 있으며, 이를 행렬 M으로 표시하면
와 같이 표시된다. 즉 행렬 M의 (1,1) 구성요소 A11=(69-567)/(70-513)=1.124153이고, 행렬 M의 (2,2) 구성요소 A22=(745-229)/(800-230)=0.905263이다.
제4단계
행렬 M을 곱하여 원래의 안쪽 제7도의 박스(7O,230,513,800)를 제9도의 안쪽 박스(69,229,567,745)로 변형시키는 것과 같은 방법으로 대표점 A,B,C의 새로운 좌표 A'=(192.229), B'=(567,229), C'=(69,745)를 얻는다. A'의 x좌표 192는 69+(180-70)×1.24153=192.65683의 정수값 192이며, 마찬가지의 방법으로 B', C'의 값을 정한다.
제5단계
기본성분을 이동한다. 본 예에서는 평행이동을 한다. 즉 대표점 A가 A'으로 이동하였으므로 그 이동한 양은 (192,229)-(180,230)이다. 따라서 제12도에서 보는 바와 같이 점 23,24,25,26,27,28,29,30)에 이값을 더하여 이동된다. 다른 기본성분 B,C도 이와같은 방법으로 이동된다.
제6단계
이 단계에서는 기본성분을 연결하는 곡선부분을 변형한다. 제5도에 도시된 바와 같이 점 2,3,4,5,6,7은 기본성분 B와 C를 잇는 곡선을 콘트롤하고 있으며, 점 12,13,14,15,16도 기본성분 C와 B를 잇는 다른 곡선을 콘트롤하고 있다. 이 점들을 변형하는 방법의 예를 들면 상기 행렬 M을 위의 점들에 적용한다. 예를들면, 점 2 내지 점 7의 변형은 대표점 B에 대한 상대적 위치변형이다. 구체적으로 계산을 해 보면, 점 2의 원래좌표는 P=(462,302)이다. 새 점의 좌표는
로 주어지는데 수치로 쓰면
상기 계산이 제12도의 점 2의 계산방식을 설명하고 있다. 이와 같이 연결곡선 위의 콘트롤 포인트 즉 점2 내지 점 7, 점 12 내지 점 16을 새로운 위치로 변형한다.
제7단계
상기와 같이 모든 점이 변형된 후에는 곡선을 매끄럽게 하기 위해 큐빅 스플라인 알고리즘을 사용하여 상기 점들을 잇는 곡선을 만듦으로써 새로 변형된 자소의 생성이 완료된다.
이상과 같이 상기에서 예시한 방식은 자소를 이루는 기본성분을 단순히 평행이동한 예를 보여주고 있다.
실제의 제작시스템에서는 기본성분의 크기를 조절하고 회전해야할 필요가 있을 수도 있다. 이 경우는 적절한 행렬의 곱과 벡터의 이동으로 일반적으로 표현될 수 있다. (수학적으로는 이를 아핀변환이라 부른다.) 이와 같이 기본성분을 변형(크기변환, 회전)하여 자소를 다양하게 형성하는 방식은 본 발명의 범위를 벗어나지 않는 응용예에 포함된다. 그리하여 상기 변형된 자소는 제13A도 및 제13B도에서와 같이 결합되어 글자를 형성한다. 제13A도는 글자 '갈'의 초성, 중성, 종성의 위치할 박스를 도시하고 있고, 제14B도는 상기
박스에 자소가 채워진 상태를 표시하고 있다.
한편, 본 발명의 특징적인 개념이라 할 수 있는 개별문자을 기본성분으로 분리하고 이러한 정보에 따라 폰트를 형성하는 전체적인 과정을 제14도에 도시된 흐름도를 참조하여 설명하면 다음과 같다.
제14도에 도시된 폰트형성방법은 크게 나누어 보면 입력된 데이터의 자소를 분리하는 제110 내지 제120단계의 자소정보추출단계, 추출된 자소에 대한 각각의 기본성분 데이터를 조합 및 변형하여 자소를 생성하는 제130 내지 제23O단계로 구성되는 자소형성단계, 각각 형성된 자소를 하나의 글자로 형성하는 제240단계의 글자형성단계, 및 사용자에 의하여 형성된 글자를 자소의 변화없이 자소간의 위치관계를 변화시키기 위한 제260단계인 글자모양랜덤변형단계로 구성된다.
이러한 폰트형성방법을 각 단계별로 상세히 살펴보면 다음과 같다. 먼저 사용자에 의한 데이터 입력이 있는 가를 판단한다(제110단계). 데이터의 입력은 특정 프로그램 내에서의 키보드등의 입력수단에 의한 입력일 수도 있으며 데이터화일의 형태로 주어질 수도 있다. 데이터의 입력이 없는 경우에는 상기 제110단계를 계속적으로 반복하고 데이터의 입력이 있으면 제120단계로 진행한다.
상기 제110단계에서 데이터가 입력되면, 이를 받아서 순차적으로 자소별로 분리하는 초성, 중성 및 종성에 관한 사용자가 요구하는 사항을 추출한다.(제120단계) 흔히 사용자는 화일형태로 저장된 배치(batch)모드 상황에서 각 글자를 이루는 자소의 박스, 위치, 그리고 각 자소를 이루는 기본성분 등을 지정하게 되는데, 이러한 요구사항을 추출한다. 또한 상기 120단계에서는 사용자가 요구하는 자소와 가장 가까운 크기(보통 효율성을 높이기 위해 자소를 최소로 가지고 있기 때문에 사용자가 원하는 크기의 자소를 가지고 있지는 않다.)의 자소를 이미 저장되어 있는 데이터베이스에서 추출하여 메모리에 올리고(물론 사용자가 원하면 볼 수도 있고 편집도 가능하다.), 다음단계의 변형을 준비하게 한다.
그리고나서 상기 제120단계에서의 출력데이터에 따라, 해당 입력데이터가 초성정보인지의 여부를 판단한다.(제130단계) 입력데이터가 초성정보 데이터인 경우에는 초성변형단계(제150단계)로 진행하고, 아닌 경우에는 중성정보인 가를 판단한다.(140단계) 중성정보인 경우에는 중성변형단계(제160단계)로 진행하고, 아닌 경우에는 종성정보를 표시하는 것이므로 제170단계로 진행하여 종성변형을 한다.
이와같이 제130단계 내지 제140단계를 통하여 초성, 중성 또는 종성정보인지의 여부가 결정되면 제150단계 내지 제170단계에서 각 정보에 대한 성분변형이 이루어진다. 상기 단계에서의 성분변형은 앞서 기술된 바와 같이 상기 제120단계에서 추출된 자료에 따라 자소를 구성하는 각각의 기본성분 데이터의 위치를 지정하는 메모리의 어드레스(또는 데이터베이스나 화일)에 억세스하여 해당 기본성분 데이터에 대한 위치정보 및 기본성분 데이터에 대한 변형정보를 페취하여 사용자의 제어정보에 따라 각 기본성분 데이터를 변형시킨다.
이 단계에서 필요하면 사용자가 지정한대로 기본성분의 치환이 이루어지며, 그의 변형 및 편집이 이루어질 수도 있다. 그리고 상기에서 예시한 '자소변형 생성방식'의 제1단계 내지 제5단계의 변형방식 또는 이에 준하는 자소변형 생성방식을 사용하여 기본 성분의 변형(평행이동)을 결정한다.
이러한 성분, 즉 기본성분의 변형인 기존의 폰트변형방법과 동일한 과정을 거쳐서 이루어진다. 예를들면, 하나의 문자, 사이즈 및 변형정보(기울기, 및 문자의 속성등)을 입력하면 내장되어 있는 기본적인 폰트의 위치데이터와 해당 데이터가 크기가 변할때의 변형정보등을 가지고 있는 폰트메모리로부터 데이터를 페취하여 사용자가 입력한 제어데이터(사이즈, 변형정도등)에 따라 크기를 변형 및 기울기의 변화등은 행렬계산등을 통하여 수행한다.
상기 제150단계 내지 제170단계를 거치면 각 자소를 구성하는 기본성분 데이터들의 기본적인 형태가 완성이 되고, 제180단계에서는 각 기본성분 데이터에 대한 임의의 범위내에서 변형을 시킬 것인가의 여부를 판단한다. 사용자의 제어데이터 중에서 랜덤변형 제어데이터가 있는 경우에는 제190단계로 진행하여 기본성분 데이터에 대한 랜덤변형을 실시하고 랜덤변형 제어데이터가 없는 경우에는 제200단계로 진행한다.
제190단계에서의 기본성분 데이터의 랜덤변형은 각 기본성분을 구성하고 있는 위치좌표들에 대하여 임의적으로 행할 수도 있지만 이들 좌표에 대하여 임의의 변형을 하는 경우 최종적으로 형성되는 글자의 모양이 사용자가 원하는 형태가 아닐 경우도 있으므로 각 기본성분 데이터에 대한 임의의 변형정보를 가지는 데이터(화일 또는 데이터베이스에 기록된)로부터 변형정보를 가지고 와서 사용자가 입력한 범위내에서 난수등을 발생시켜 행렬연산등에 의하여 변형시킨다.
제200단계에서는 화면에 표시할 때는 힌팅 명령이나 라스터라이징에 의해 그리드 피팅을 거칠 수도 있고, 파일로 저장시는 이 과정은 생략된다. 상기 제200단계에서 그리드 피팅 과정을 거친후의 데이터에 대하여 추적적으로 다시 변형을 시킬 것인가를 판단하고(제210단계) 변형명령이 있는 경우에는 제220단계로 진행하여 랜덤변형에 관한 정보가 저장되어 있는 랜덤변형메모리를 참조하여 제190단계에서와 동일한 형태의 변형과정을 거친후에 제230단계로 진행하고, 변형명령이 없을 경우에는 제230단계로 진행한다. 이 경우도 파일로 저장시는 상기 제220단게를 생략한다.
제130단계 내지 제220단계를 거친 데이터는 하나의 자소가 아니라 각 자소를 구성하는 기본성분 데이터에 대하여 변형, 그리드 피팅, 랜덤변형등의 처리과정이 이루어진 것이므로 이를 각각의 기본성분 데이터를 결합하여 하나의 완성된 자소를 형성하여야 할 필요가 있다. 제230단계에서는 상기에서 예시한 '자소변형 생성방식'의 제6단계와 제7단계를 수행한다.
상기 제130단계 내지 제230단계를 거쳐서 각각의 자소에 대한 기본성분정보를 이용하여 변화된 자소를 이용하여 제240단계에서는 이러한 초성, 중성 및 종성정보를 다시 결합하여 하나의 글자를 형성한다. 글자의 형성은 각각의 자소정보들이 초성, 중성, 및 종성의 여부에 따른 위치좌표를 가지고 있기 때문에 이들의 좌표의 결합에 의하여 글자를 형성하는 것이 가능하다. 제13A도 및 제13B도는 제13A도의 자료를 가지고 제13B도의 글자가 형성된 예를 보여주고 있다.
통상적으로 상기와 같은 과정에 의하여 하나의 완성된 글자를 형성할 수 잇지만 사용자가 따라서는 자소간의 형태변화가 아닌 자소간의 결합을 변화시키고자 하는 경우도 있으므로 본 발명에서는 추가적으로 사용자의 입력데이터중에서 자소간의 결합정보를 변화시키고자하는 제어데이터가 있는가의 여부를 판단한다(제250단계). 제250단계에서 해당 제어데이터가 없는 경우에는 제270단계로 진행하고, 제어데이터가 있는 경우에는 제260단계로 진행하여 글자모양에 대한 변형을 시작한다.
제260단계에서 이루어지는 변형은 일률적으로 자소간의 간격을 변화시키거나 각각의 자소에 대하여 상상의 점을 설정하고 이 점을 기준으로 자소간의 간격을 조절하는 방법을 통상적으로 사용한다.
제250단계 또는 제260단계를 거쳐서 형성된 폰트데이터는 데이터화일로써 저장되거나 컴퓨터의 모니터등과 같은 출력장치를 통해서 표시된다.
상기에서는 제110단계 내지 제270단계에 걸쳐서 하나의 글자에 대하여 설명을 하였으나 입력되는 데이터에서의 글자의 수에 따라 반복적으로 실시되어 폰트를 형성한다.
상기에서는 폰트형성에 있어서 각각의 자소를 특징적인 기본성분으로 나누어서 폰트를 형성하였으나, 각각의 자소자체를 기본성분으로하여도 동일하게 처리할 수 있다.
그리고 상기의 실시예에서는 한글을 일실시예로하여 기술 하였으나 한자, 일본어등 아우트라인 포트를 사용하는 시스템에 모두 적용이 가능하다. 또한 본 발명에서는 구체적으로 도시하지 않았지만 입력부를 통해 랜덤그리드 피팅을 위한 랜덤변형정보, 스템크기, 및 문자정보 메모리와 변형정보메모리의 내용도 직접 입력가능하다.
상술한 바와 같이, 본 발명에 의하면 기존의 폰트생성방법이 각각의 글자에 대하여 개별적인 폰트데이터와 각각의 서체에 따라서 별도의 폰트데이터를 구비하여야하는 문제점을 작은 수의 기본성분으로써 다양한 글자를 결합 및 변형에 의하여 많은 서체를 형성할 수 있으며, 상대적으로 폰트데이터를 저장하는데 필요한 메모리를 현저하게 줄일 수 있는 효과가 있다. 또한 서체제작 과정에 따른 시간과 노력이 대폭 절감될 수 있고 적은 시간과 노력으로 서체를 다양화할 수 있어 생산성의 대폭적 향상을 가져올 수 있다.
Claims (1)
- 키보드 등의 입력수단에 의한 문자코드 또는 파일등의 형태로 입력되는 글자를 이루는 자소에 관한 자소정보(초성, 중성, 종성, 기본성분, 크기, 위치 및 기타 사용자 제어정보 등)를 이용하여 아우트라인폰트를 형성하는 방법에 있어서, 상기 입력된 자소정보를 추출하는 자소정보 추출단계; 상기 추출된 자소정보로부터 자소를 구성하는 기본성분 데이터와 해당 기본성분 데이터의 변형정보와 새로 생성될 자소의 박스정보를 기본성분 데이터를 저장한 메모리(혹은 데이터베이스, 파일)와 변형정보 데이터를 저장하고 있는 메모리(혹은 데이터베이스, 파일)로부터 페치하는 단계; 상기 페치한 변형정보에 따라 자소를 이루는 기본성분 데이터 각각을 변형(이동 포함)하는 단계; 상기 변형된 각 기본성분들을 서로 연결하여 폐곡선을 형성하여, 새로운 형태의 자소를 형성하는 자소형성단계; 및 형성된 자소를 하나의 글자로 형성하는 글자형성단계를 포함하는 것을 특징으로 하는 아우트라인폰트 형성방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920022936A KR960013368B1 (ko) | 1992-11-30 | 1992-11-30 | 아우트라인(outline) 폰트의 형성방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920022936A KR960013368B1 (ko) | 1992-11-30 | 1992-11-30 | 아우트라인(outline) 폰트의 형성방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR940012177A KR940012177A (ko) | 1994-06-23 |
KR960013368B1 true KR960013368B1 (ko) | 1996-10-04 |
Family
ID=19344408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920022936A KR960013368B1 (ko) | 1992-11-30 | 1992-11-30 | 아우트라인(outline) 폰트의 형성방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR960013368B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101218345B1 (ko) * | 2010-12-31 | 2013-01-03 | (주)한양정보통신 | 한글 자소 조합 기반의 힌팅 처리 장치 및 그 방법 |
-
1992
- 1992-11-30 KR KR1019920022936A patent/KR960013368B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101218345B1 (ko) * | 2010-12-31 | 2013-01-03 | (주)한양정보통신 | 한글 자소 조합 기반의 힌팅 처리 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR940012177A (ko) | 1994-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5159668A (en) | Method and apparatus for manipulating outlines in improving digital typeface on raster output devices | |
US5325479A (en) | Method and apparatus for moving control points in displaying digital typeface on raster output devices | |
US20140085311A1 (en) | Method and system for providing animated font for character and command input to a computer | |
KR100219072B1 (ko) | 중심축 변환을 이용한 폰트 및 그 폰트 서체의 변형 및 라스터라이징 방식 | |
JPS62123573A (ja) | コンピユ−タ・グラフイツク装置およびその操作方法 | |
JPH05127654A (ja) | 文字図形変形処理装置 | |
WO2002025587A2 (en) | Method and apparatus for shape deformation and placement | |
JP6298422B2 (ja) | マンマシンインターフェースのグラフィック表示用の文字列の処理技術 | |
US5489920A (en) | Method for determining the optimum angle for displaying a line on raster output devices | |
KR100497390B1 (ko) | 벡터 폰트 생성방법 및 장치 | |
US5068803A (en) | Method and apparatus for filling contours in digital typefaces | |
KR100212412B1 (ko) | 문자패턴 생성장치 | |
KR960013368B1 (ko) | 아우트라인(outline) 폰트의 형성방법 | |
WO1998036630A2 (en) | Parametric font models based on features and constraints | |
Haralambous | Parametrization of PostScript fonts through mEtaFoNt—an alternative to Adobe Multiple Master Fonts | |
JPS63108388A (ja) | 画像処理装置 | |
Wright | History and technology of computer fonts | |
JPH0330188B2 (ko) | ||
JPS62212167A (ja) | 流用文字作成方式 | |
JP2001249656A (ja) | 文字図形変形処理装置 | |
KR20230126658A (ko) | 난수와 확률변수를 이용한 예술작품의 생성 방법 및 장치 | |
Apel et al. | Building a Graphetic Dictionary for Japanese kanji-Character Look-up Based on Brush Strokes or Stroke Groups, and the Display of Kanji as Path Data | |
Adams | A dialogue of forms: letter and digital font design | |
Banjanin et al. | Font hinting techniques and the importance of applying these techniques for high-quality display of fonts on the output device screen | |
Klimenko et al. | Handwritten fonts modeling based on fat lines of variable width |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J2X1 | Appeal (before the patent court) |
Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL |
|
G160 | Decision to publish patent application | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20020927 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |