KR100297238B1 - 저해상도및고해상도공간을위한획형폰트생성방법및장치 - Google Patents

저해상도및고해상도공간을위한획형폰트생성방법및장치 Download PDF

Info

Publication number
KR100297238B1
KR100297238B1 KR1019970039205A KR19970039205A KR100297238B1 KR 100297238 B1 KR100297238 B1 KR 100297238B1 KR 1019970039205 A KR1019970039205 A KR 1019970039205A KR 19970039205 A KR19970039205 A KR 19970039205A KR 100297238 B1 KR100297238 B1 KR 100297238B1
Authority
KR
South Korea
Prior art keywords
stroke
keypoints
strokes
character
font
Prior art date
Application number
KR1019970039205A
Other languages
English (en)
Other versions
KR19980024148A (ko
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 리 피셔
Publication of KR19980024148A publication Critical patent/KR19980024148A/ko
Application granted granted Critical
Publication of KR100297238B1 publication Critical patent/KR100297238B1/ko

Links

Images

Classifications

    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

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

Abstract

고해상도 및 저해상도 공간내에서 표시할 수 있는 획 묘사로 정의되는 획형 폰트 제작 방법 및 장치가 개시된다. 본 발명의 획형 폰트 제작 방법 및 장치는, 획 묘사에서 그 일차변수들로서 키포인트들과 폭 값들, 이차변수들로서 형상포인트들과 커브 형상들을 갖는 기본획의 정의를 포함하여, 어떤 키포인트들에 대한 힌팅(hinting) 정보가 저해상도 공간내에서 우량품질의 획을 표시하기 위한 정보를 제공하고, 캐드(CAD) 도구는 폰트 디자이너로 하여금 기본획들의 디자인을 위한 변수들을 용이하게 선택할 수 있도록 한다.

Description

저해상도 및 고해상도 공간을 위한 획형 폰트 생성 방법 및 장치{Stroke-based font generation for low and high-resolution space}
본 발명은 활자적 문자들 또는 기타 부호들의 디지탈 표시를 생성하는 기술에 관한 것으로, 특히 저해상도 및 고해상도 장치들의 아시안(Asian) 문자들 또는 부호들에 대한 비트맵 폰트를 생성하는 장치 및 방법들에 관한 것이다.
아시안 문자 폰트들 또는 간략히 아시안 폰트들을 생성하는 많은 폰트 생성 시스템들이 존재한다. 아시안 폰트는 아시안 언어에서 문자들을 표시하는 많은 수의 상형문자들로 구성된다. 아시안 언어들은 수천개의 문자들을 포함할 수 있다. 예를들어, 중국어는 2만개의 각기 다른 문자들을 포함한다.
다음은 종래 기술의 여러가지 아시안 폰트 생성 기법들이다.
종래의 한 컴퓨터 기법에서 문자들은 수기로 생성된 각 아시안 문자의 이미지들로부터 스캐닝된 디지탈 비트맵 이미지들로서 소망의 특정 폰트로 저장된다.이해될 수 있듯이, 이것은 시간 및 노동 집약적 작업이 될 수 있다. 더불어, 비트맵 이미지들로 저장되는 아시안 폰트들에 대한 소요 메모리 공간이 매우 크다. 예를들어, 각 문자의 해상도가 256x256이면, 문자당 65,536비트(또는 문자당 8192 바이트)의 메모리가 소요된다. 중국어에서의 20,000 문자들을 곱하면, 단일 아시안 폰트를 저장하는 데 요구되는 메모리는 1.3 기가 비트(또는 150 메가 바이트)이상이 된다. 요구되는 메모리의 양은 많은 응용분야들에서 수용될 수가 없다.
다른 종래의 기법으로, 라인톤(line-tone) 이미지 형태로 저장된 문자 패턴들이 표시되고 인쇄되는 방법이 적용되어 왔다. 이 방법은 X-Y 플로터 분야에서 사용되어 왔다. 이 방법에 의해 문자 크기를 확대 또는 축소하거나 문자 패턴을 회전하는 것이 가능하다. 하지만, 원래의 문자 패턴이 라인톤 이미지로 구성되어 있기 때문에 문자 품질상에 문제가 발생한다.
상기 단점을 해결하기 위한 문자 패턴들의 저장 및 생성방법에 대한 다른 종래기술로서는 외곽선 폰트 시스템이 알려져 있다. 이 시스템은 아도브 시스템즈 인코포레이티드(Adobe Systems Inc.)에 의한 "포스트스크립 언어 지도 및 설명서(PostScrip Language Tutorial and Cookbook), 애디슨-웨슬리(Addison-Wesley) 출판, 1985"에 기술되어 있다. 이 방법에서는 문자 패턴의 외각선이 직선들과 곡선들의 모음으로 저장되고, 문자 패턴의 출력시에 확대, 축소, 회전 및 스케일링 변환과 같은 변환이 수행된다. 문자 패턴의 외곽선은 그래픽화되어 저장되기 때문에 용이하게 상기 변환이 수행될 수 있다. 더불어, 원래의 문자패턴을 고품질 및 상대적으로 메모리 소요를 적게 하여 외곽선의 형태로 저장하는 것이 가능하다.
문자패턴을 생성하는 다른 방법에서는 문자패턴 데이터를 사용한다. 이 획형(stroke-based) 기법의 문자 패턴 데이터는 골격 패턴 데이터, 획 두께 데이터 및 모양 파라미터 데이터를 포함한다. 미국특허 제4,897,638호를 참조하라. 다른 획형 기법은 높이, 폭 및 만곡점들(curvature points)로 정의되는 획을 갖는 문자들을 정의한다. 미국특허 제4,990,903호를 참조하라. 이러한 획형 기법은 256x256 비트맵과 같은 상대적으로 높은 해상도 문자 공간에서 문자들을 생성시키기에 적합하지만, 24x24 비트맵과 같은 상대적으로 낮은 해상도 문자 공간에서 문자들을 생성시키기에는 부적합하다. 문자공간은 개별적인 문자에 대한 표시영역이다. 표시영역내의 문자공간에 대한 해상도 수준은 대부분 표시장치 또는 프린터의 요구사항에 의하여 결정된다.
대부분 획 모양의 특성은 가용 픽셀들상에 직접 놓여지지 않고, 대신에 픽셀사이에 놓여지게 된다. 따라서, 표시 해상도의 거침에 기인하여 정밀한 형상을 표시하는 것이 가능하지 않음으로 인하여 형상을 전체적으로 잃거나 최소한 그 모양이 약간 바뀔 수도 있다. 예를 들어, 미국특허 제4,990,903호의 매핑방법은 도 1b에 도시한 24x24 도트 매트릭스(dot matrix)패턴내 비트맵 폰트를 발생시킨다. 이 매핑방법은 만일 픽셀이 외곽선에 의해 나타낸 바와 같이 한 조각의 생성된 획 영역을 포함하고 있으면 픽셀을 활성화시킨다. 이 매핑방법은 획 모양의 누락을 막지만 바람직하지 않은 픽셀들을 갖는 획 모양들을 넓힌다. 그 결과로서, 표시장치는 허용되지 않는 낮은 해상도의 비트맵 문자를 생성하는 활성화된 픽셀들로 꽉 차게된다. 따라서, 상기 방법은 고해상도 폰트를 생성시키기 위해서는 가장 적합하지만, 좋은 품질의 저해상도 폰트를 얻기 위해서는 매우 부적당하다. 게다가, 이러한 기법들은 디자이너들과 유저들이 원하는 문자 집합들을 용이하게 생성하기 위한 인터페이스를 제공하지 못한다.
본 발명이 이루고자 하는 기술적 과제는, 한 문자집합을 포함하는 아시안 언어의 폰트를 생성하는 방법 및 장치를 제공하는 것이다.
도 1a는 본 발명의 방법들을 수행하는 범용 컴퓨터 및 프린터를 도시한 구성도이다.
도 1b는 종래기술에 따른 저해상도 공간내에서 표시된 고해상도 획형 문자를 도시한 예시도이다.
도 1c는 본 발명에 따라 생성되고 저해상도 공간내에서 표시된 고해상도 획형 문자를 도시한 예시도이다.
도 2a는 고해상도 및 저해상도 장치들에 대한 문자들을 렌더링하는 방법을 도시한 흐름도이다.
도 2b 내지 도 2d는 본 발명에 따른 획형 폰트 구축 방법을 도시한 흐름도이다.
도 3a 내지 도 3d는 기본획의 일차변수들을 구분하기 위해 사용되는 캐드도구의 화면사진이다.
도 4a 내지 도 4j는 특수 폰트 스타일의 획들을 만드는데 사용되는 설계자 캐드도구의 화면사진이다.
도 5는 커브생성의 기하학적 도형을 도시한 예시도이다.
도 6a 내지 도 6e는 디자이너 캐드도구로 만들어진 획들을 포함하고 획형 폰트를 만드는데 사용되는 사용자 캐드 도구의 화면사진이다.
도 7a 내지 도 7b는 언라벨링 및 라벨링 키포인트들을 갖는 비트맵 문자들을 각각 도시한 예시도이다.
도 8은 문자의 일차 폰트 데이타를 도시한 예시도이다.
도 9는 밍-타입 폰트의 샘플문자들에 대한 본 발명의 방법에 의하여 만들어진 24x24의, 저해상도, 단일 문자 비트맵으로의 출력결과를 도시한 예시도이다.
상기 과제를 이루기 위하여 본 발명의 획형 폰트 생성 방법은, 문자집합을 관찰하는 것을 기초로 기본획을 생성하는 단계를 포함한다. 또한, 기본획 집합내의 각 기본획은 문자집합에 사용된 유사 획 집합을 나타낸다. 또한, 각 기본획은 복수의 키포인트들과 하나이상의 폭값에 의해 구분된다. 상기 방법은 또한 각 문자내의 각 획에 대하여, 상기 획에 가장 가깝게 근사하는 상기 기본획 집합내의 상기 기본획을 구분하는 단계와, 상기 키포인트들과 폭 값들을 통해 상기 획에 일치하도록 상기 기본획을 처리함에 의해 수정된 키포인트들과 수정된 폭 값을 갖는 수정된 기본획을 공식화하는 단계와, 상기 수정된 키포인트들과 수정된 폭 값들을 메모리에 저장하는 단계, 및 모든 문자들이 복수의 수정된 기본획들로 나타내어질 때까지 각 문자의 각 획에 대한 문자들의 획들을 구축하는 단계를 반복하는 단계에 의해 상기 문자들 집합내의 각 문자들을 한 획씩 구축하기 위하여, 상기 기본획들 집합을 사용하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명의 타태양에 따르면, 상기 방법은 표시장치상에서 표시하기 위한 문자를 선택하고, 각 획은 선정의된 위치와 선정의되고 선저장된 키포인트들, 폭 값들, 커브 값들, 및 형상포인트들을 포함하며, 선택된 문자와 결합된 선정의되고 선저장된 획들을 불러오는 단계들을 포함한다. 형상포인트들은 키포인트들과 선정의된 공간적 관계를 가진다. 만일 키포인트가 선정의된 특정 표시위치를 요구하면, 상기 키포인트는 힌트정보로 라벨링된다. 읽어들인 획들의 라벨링된 키포인트들을 라벨링된 키포인트가 들어있는 비트맵셀의 중앙부내로 위치시키는 단계를 포함하는 비트맵 이미지 생성으로서, 불러들인 획들에 따라 선택된 문자의 비트맵 이미지가 생성되는 것이 바람직하다.
또한, 본 발명의 타태양에 따르면, 상기 방법은 위치되어진 라벨링 키포인트들과 비라벨링 키포인트들과의 선정의된 공간적 관계에 따라서 형상포인트들을 계산하고, 커브 값들에 따라 연속적인 계산된 형상포인트들사이의 계산된 커브 세그멘트를 계산하는 단계와, 생성된 커브 세그멘트들을 연결함에 의해 획들에 대한 외곽선들을 계산하는 단계, 및 상기 계산된 획 외곽선내 포함된 영역을 채우는 단계를 더 포함하고, 픽셀의 절반이상이 계산된 획 외곽선내의 영역으로 덮여지거나 픽셀의 중심부가 계산된 획 외곽선내에 있으면 픽셀들을 활성화하는 것이 바람직하다.
또한, 본 발명의 타태양에 따르면, 상기 방법은 커브값들에 따라 연속적인 계산된 형상포인트들 사이의 커브 세그멘트들을 생성하는 단계는, 두 연속적인 형상포인트들사이에 하나이상의 중간제어포인트가 존재하는것을 정의하는 단계와, 하나이상의 정의된 중간제어포인트와 해당 형상포인트들에 따라 베지어 삼각형(Bezier triangle) 커브생성을 사용하여 커브 세그멘트들을 정의하는 단계를 더 포함하는 것이 바람직하다.
상술한 요약으로부터 용이하게 이해되는 것과 같이, 본 발명은 저해상도 및 고해상도 공간에 대한 아시안 문자들의 비트맵 폰트를 생성하는 새롭고 향상된 방법 및 장치를 제공한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 설명하기로 한다. 첨부된 도면들과 결합된 상세한 설명을 참조함에 의해 본 발명이 보다 잘 이해됨으로써, 본 발명의 상술한 태양들 및 많은 부수적 장점들에 대하여 보다 용이하게 인정될 것이다.
도 1a는 윈도우즈 95TM(Windows 95TM)와 같은 윈도우형의 소프트웨어 운용 시스템으로 로딩될 때 본 발명의 방법을 완전히 수용할 수 있는, 프린팅 장치(12)가 부착된 범용 디지탈 컴퓨터(10)를 도시한 구성도이다. 디지탈 컴퓨터(10)의 프린팅 장치(12)와 디스플레이는 저해상도(예: 도트 매트릭스) 또는 고해상도(예: 레이저) 품질로 표시 또는 프린트할 수 있다. 네트워크형 또는 메인프레임형과 같은 다른 종류의 계산 시스템들은 호환형 윈도우형 운용시스템을 포함하는 시스템이면 본 발명과 호환성이 있다.
본 발명의 바람직한 실시예에서는 저해상도 문자표시영역(비트맵)에서 한 폰트의 문자들을 구성하는 고품질 획들을 얻게된다. 도 1c에 저해상도 문자표시영역(24x24 문자공간(비트맵))내에서 표시된 한 문자의 예를 도시하였다.한 폰트는 유사한 형식을 갖는 문자들의 집합으로 정의된다.
본 발명의 두 번째 실시예는 그래픽 디자이너(사용자)에 의해 구입되고 사용되는 "기본획들"의 축소된 집합을 포함하는 데이타베이스를 정의하기 위한 시스템을 제공한다. 데이타베이스내의 각 기본획은 문자들을 공식화하는 데 사용되는 하나 또는 하나 이상의 유사한 획들을 나타낸다.
본 발명의 세 번째 실시예는 정의된 기본획들의 데이타베이스로부터 저장된 문자집합을 만들어내는 시스템을 제공한다. 기본획은 한 문자내의 최소한 하나의 단일 브러쉬이다. 예를들어, 도 1c의 획(17)은 세개의 연결된 외곽선 형태로 나타내어지는 바와 같이 세 브러쉬 획을 포함하고 있으며, 획(18)은 오직 하나의 브러쉬 획을 갖는 획의 예이다. 강조된 픽셀 셀들(16)은 미리 정의된 획들의 데이타베이스로부터 만들어진 한 문자의 실제적인 표시를 나타낸다. 강조된 픽셀 셀들(16)은 상기 강조된 픽셀 셀들(16)의 아날로그 형태 또는 외곽선들(15)에 가능한 가까이 대응된다.
도 2a에 본 발명의 바람직한 실시예에 따라 문자들을 렌더링하는 방법을 도시하였다. 도 2a에 나타낸 단계들은 저해상도 또는 고해상도 디스플레이 장치상에서의 표시 또는 저해상도 또는 고해상도 프린터상에서의 프린팅을 위해 컴퓨터내의 이미지 렌더링 프로그램/엔진에 의해 수행되는 단계들이다. 블록(82)에서는 지정된 프린팅 또는 디스플레이 장치상에서 프린팅 또는 표시하기 위해 작가가 워드프로세서 프로그램에 의해 문서를 만들어내는 것과 같이 응용 프로그램으로부터 문자들을 선택함에 의해 문자들을 불러들인다.
판정블록(84)에서 시스템은 불러들인 문자들의 획들에 대한 저장 레퍼런스 포인트들(키포인트들)이 힌팅(hinting) 정보로 라벨링되었는지를 판정한다. 힌트 정보는 저해상도 문자공간에서 관찰된 획 품질에 의하여 미리 저장되어 있다. 만일 키포인트들이 힌트정보로 라벨링되어 있지 않으면 시스템은 블록(86)에서 문자공간의 저장된 위치에서 키포인트들을 고정시킨다. 그러나, 키포인트들이 라벨링되어 있으면, 블록(88)에서 라벨링된 키포인트들은 키포인트들이 어드레싱된 표시 픽셀의 중심으로 이동되어 고정된다. 고정 단계는 키포인트의, 새롭게 이동된 위치인지 아닌지의, 문자 공간위치를 기록하기 위하여 컴퓨터의 프로세서에 의하여 수행된다. 마지막으로 블록(92)에서는 고정 키포인트들, 선저장 폭 값들, 획들에 대한 외곽선의 점들을 구분하는 선저장 형상 포인트들, 획들의 형상 포인트들 사이의 선들을 정의하는 선저장 곡선 값들 및 선정의된 방법에 따라 픽셀들을 활성화하는 채움(filling) 알고리즘에 따라 획들이 렌더링된다.
도 2b 내지 도 2d는 본 발명의 두 번째 및 세 번째 실시예에 의해 수행되는 방법들을 도시한 흐름도이다. 도 2b 내지 도 2d의 방법들은 저해상도 및 고해상도의 문자공간들에 대한 폰트 데이타를 만든다. 도 2b에 도시한 단계들은 기본획의 일차 변수들을 생성하기 위한 처리단계들이다. 기본획들 집합은 토포그래피(topography) 방법으로 소망의 마스터 문자들 집합내의 모든 획들을 나타내는 축소된 획들 집합이다. 블록(20)의 제 1 단계에서는 폰트 디자이너가 마스터 문자들 집합을 스케닝에 의하여 입력시키거나 그래픽 프로그램을 사용하여 생성시킨다. 마스터 문자 이미지 또는 외곽선들의 집합이 형판(型板)으로 사용 가능하면 다른 기법들이 사용될 수 있다. 마스터 문자들 집합은 동일한 폰트들이다. 만일 마스터 문자들이 중국 문자들이라면, 다음은 텍스트 핸드(text hand), 런닝 핸드(running hand), 커시브 핸드(cursive hand), 실 타잎(seal type), 성 타잎(Sung type) 및 밍 타잎(Ming type)과 같은 마스터 문자들 집합을 형성하기 위해 디자이너가 골라서 쓸수있는 다른 중국 문자 폰트들이다.
다음으로 블록(22)에서 폰트 디자이너는 마스터문자들 집합으로부터 유사 획군을 관찰한다. 관찰단계는 유사 토포그래피를 갖는 획들에 대한 마스터 문자들을 이미지 분석기법들에 의해 수동 또는 자동으로 시각적인 스케닝을 하는 정도로 간단하다. 다음으로 폰트 디자이너는 블록(24)에서 유사 토포그래피를 갖는 획들군을 나타내기 위해 획을 선택한다.
획들군을 나타내기 위한 기본획을 생성하기 위한 단계는 논리적이라기 보다는 기술적이라고 이해될 수 있다. 그것은 언어상의 모든 문자들을 알고, 기본획이 유사 획들에 대해 적합한지를 판정하는 디자이너의 숙련도에 달려있다.
선택된 각 기본획들은 기본획에 대한 일차 변수들을 처음으로 저장함에 의해 기본획으로 지정된다. 볼록(26)에서 폰트 디자이너는 선택된 획들의 토포그래픽 레이아웃(topographic layout)에 상대적인 위치에 있는 키포인트들을 구분한다. 폰트 디자이너는 획 토포그래피, 크기, 수직 및 수평 부분들 및 관찰된 유사 획들을 기초로 키포인트들을 어디에 위치시킬 것인지를 결정한다. 키포인트들의 지정은 이하의 도 3a와 도 3b에서 보다 상세하게 기술한다. 하지만 일반적으로 말해서 키포인트들은 획의 시작부와 종지부 및 획이 급격히 방향을 바꾸는 모든 장소에 위치된다. 게다가 키포인트들은 기본획이 나타내는 유사 획들 집합의 어느것에 일치시키기 위하여 기본획의 세그멘트들을 밀거나 당길(push or pull) 필요가 있는 모든 곳에 위치하여야 한다. 다시 말해서 기본획이 나타내는 획들의 어느것으로 형성시키기 위하여 기본획들이 처리될 수 있어야 한다.
다음의 블록(28)에서 폰트 디자이너는 각 획에 대해 최소한 하나의 폭 값을 지정한다. 선택된 폭들의 값은 관찰된 유사 획들의 관찰된 폭들을 기초로 폰트 디자이너의 판정치이다. 폭 값의 입력에 대해서는 이하의 도 3c 및 도 3d에 보다 상세하게 기술하였다.
폰트 디자이너는 마스터 문자들 집합내의 모든 획이 최소한 하나이상의 저장 기본획들과 유사한 토포로지컬 레이아웃(topological layout)을 가질 때 까지 기본획들에 대한 일차변수값들의 저장을 계속한다. 이것은 판정블록(30)에 의해 수행된다. 상술한 기본획 저장단계들은 키포인트들에 대한 유사 획 및 최적 위치들과 유사하게 구분된 획들의 폭에 대한 값을 구분하는 이미지 분석 소프트웨어로서 수동적 또는 자동적으로 수행될 수 있는 것으로 당업자에 의해 이해될 수 있다.
도 2c에는 기본획들에 대한 이차변수들을 지정하여 기본획 제작을 완성하기 위해 요구되는 단계들을 도시하였다. 이차변수 지정에 있어서, 폰트 디자이너는 생성된 기본획들 집합으로부터 그 외곽선 이미지를 갖는 기본획을 선택한다. 선택된 기본획의 외곽선화 이미지는 이차변수 지정에 대한 형판으로서 불러들여진다. 폰트 디자이너는 블록(34)에서 기본획의 외곽선화 이미지, 키포인트들 및 폭 값들을 사용한 형상 포인트들을 정의하고, 블록(36)에서는 정의된 형상 포인트들의 쌍들 사이의 커브 세그멘트들을 정의한다. 형상 포인트들은 외곽선의 방향 또는 곡선률에 있어서 변하는 장소들의 기본획에 대한 외곽선상에 위치된다.
일단 모든 기본획들이 이차변수들로 완전히 정의되면, 기본획 정의는 완료된다. 판정블록(38)을 참조하라. 기본획 정의는 또한 상술한 자동적 기본획 집합 생성에 사용된 것과 유사한 기법들을 사용하여 자동적으로 수행될 수 있다. 기본획 제작은 디자이너 캐드(CAD) 도구를 나타낸 이하 도 4a 내지 도 4j에서 보다 상세하게 기술하였다.
도 2d에서는 그 이차 및 일차변수들을 갖는 제작된 기본획에 따라 사용자에 의하여 사용자 폰트를 생성하는 데 수행되는 단계들을 도시하였다. 사용자는 통상적으로 상업적 용도의 저장폰트 데이타베이스를 만들려고 하는 그래픽 디자이너이다. 블록(42)에서 사용자는 먼저 사용자 폰트를 제작하기 위하여 형판으로서 사용하고자 하는 폰트로 된 신규 문자들 집합을 스케닝한다. 신규 문자들 집합은 사용자가 저해상도 또는 고해상도 표시를 위한 축소된 공간내에 저장하고자 하는 문자들의 집합이다. 블록(44)과 블록(46)에서 사용자는 다음으로 스케닝된 문자들 집합으로부터 한 문자와 선택된 문자로부터의 한 획을 선택한다. 블록(48)에서 사용자는 만들어진 기본획들 리스트로부터 선택된 획에 가장 가깝게 일치하는 기본획을 불러들인다. 다음에는 블록(50)에서 선택된 기본획의 키포인트들을 이동시켜 선택된 기본획의 모양이 선택된 획의 모양에 일치시킴으로써 기본획의 외곽선을 선택된 획의 외곽선에 대응하도록 이동시키고, 선택된 획의 폭에 일치하도록 기본획의 폭 값(들)을 변경시킨다. 일치하는 기본획은 표시 처리동안에 선택된 획을 나타내기위하여 저장된다. 판정블록(52)에서는 기본획들을 선택하고 스케닝된 신규문자들 집합의 문자들내의 획들에 일치시키는 단계들이 모든 문자들내의 모든 획들이 저장 및 일치된 기본획을 가질 때 까지 수행된다. 신규 문자들 집합과 그 키포인트들의 획들에 일치하는 획들은 저해상도 문자 공간내에서 관찰된다. 블록(54)에서는 만일 관찰된 획들이 표시 품질이 나빠지는 것을 피하기 위하여 문자공간내에서 특정한 위치를 요구하면, 이러한 획들의 키포인트들은 장래의 표시 처리를 위해 힌트 정보로 표시된다. 블록(54)에서 수행되는 단계는 형상 포인트 및 커브 세그멘트 생성 동안에 폰트 디자이너에 의해 수행될 수 있다. 사용자 폰트 생성방법은 이하 도 6a 내지 도 6e의 사용자 캐드(CAD) 도구로써 보다 상세하게 기술하였다.
이하에서는 기본획 캐드 도구에 대하여 기술하기로 한다. 도 3a 내지 도 3d에는 기본획 캐드 도구(64)내에서 일차변수를 지정하는 것을 도시하였다. 도 3a에 도시한 바와 같이, 폰트 디자이너는 스케닝된 마스터문자들 집합으로부터 불러들인 한 획의 외곽선 이미지(66)를 불러들인다. 외곽선 이미지(66)는 폰트 디자이너가 관찰된 마스터문자들 집합으로부터의 유사획 집합을 가장 잘 표현하는 것으로 신뢰하는 획이다. 폰트 디자이너는 캐드 도구(64)의 주 메뉴로부터 키 부가(Add key)명령(68)을 선택함에 의해 일차변수 지정을 시작한다. 키 부가 명령(68)을 선택함으로써 폰트 디자이너는 제 1 키포인트(70)를 대화창(65)내에 있는 외곽선 이미지(66)의 한 쪽 끝에 위치시킬 수 있다. 캐드도구(64)는 제목, 주 메뉴와 버튼 및 캐드도구 막대들 아래에는 두 개의 이차원적 표시 영역들(65, 67)을 갖는 작업공간을 포함하는 윈도우 그래픽 사용자 인터페이스(GUI, Graphical UserInterface)이다. 표시 영역(67)은 작업공간의 오른쪽에 위치되어 있으며, 불러들인 외곽선 이미지(66)을 표시하는 문자공간이다. 불러들인 외곽선 이미지(66)는 표시 영역(67)내의 더 작은 블록내에서 표시된다. 표시 영역(67)의 왼쪽에 위치한 표시 영역(65)은 표시 영역(67)내에 있는 작은 상자의 확대도이다. 폰트 디자이너는 표시 영역(65)내에 있는 불러들인 외곽선 이미지(66)와 접속한다. 불러들인 외곽선 이미지(66)는 기본획의 일차 및 이차변수들을 정의하기 위한 형판으로서 사용된다.
폰트 디자이너는 마우스와 같은 커서 장치를 활성화하거나 클릭함에 의하여 키포인트를 표시 영역(65)내 소망의 포인트에 위치시킨다. 폰트 디자이너는 키포인트를 불러들인 외곽선 이미지(66)의 외곽선의 내부 또는 외부의 어느 곳에도 위치시킬 수 있다. 키포인트 위치는 마스터문자들 집합으로부터 유사획들의 많은 관찰된 형상에 의존한다. 키포인트는 각 기본획의 끝에 위치시키는 것이 바람직하다. 만일 기본획이 일차적으로 수직획이면 폰트 디자이너는 키포인트들을 각각의 끝의 폭 중심에서 수평으로 위치시킨다. 반대로 일차적인 수평 기본획에 대해서도 마찬가지이다. 만일 기본획이 한 교차점에서 교차한 수평 및 수직 부분을 포함하고 있으면, 폰트 디자이너는 키포인트를 수직부분의 폭의 중심에서 수평으로, 수평부분의 폭의 중심에서 수직으로 위치시킨다. 본질적으로 키포인트들은 관찰된 유사획들에 일치시키기 위하여 기본획의 끝 또는 다른 부위들을 연장, 확장, 또는 구부림이 허용되도록 위치된다. 즉, 키포인트를 위치시키는 것은 폰트 디자이너의 선택에 달려있다. 도 3b에 도시한 바와 같이, 폰트 디자이너는 키포인트(70)를 외곽선 이미지(66)의 외곽선내에서 불러들인 획(66)의 두툼한 끝부분에 위치시켰다. 한 획에대한 키포인트들의 최소 수는 둘이다.
다음에 폰트 디자이너는 기본획에 대해 최소한 하나의 폭 값을 지정한다. 역시, 폭 값이 요구되는 기본획상에서 그러한 위치들을 지정하는 것은 폰트 디자이너의 기술적 수완에 달려있다. 일반적으로 폭 값들은 기본획을 기본획이 나타내는 획들 집합내의 획들에 맞도록 조정하기 위하여 수정되는데 필요한 획의 장소에 위치시켜야 한다.
도 3c에 도시한 바와 같이, 폰트 디자이너는 도 3d에 나타낸 두께 부가창(Add Thickness Window, 74)을 불러들이기 위하여 두께 부가(Add Thickness) 명령(72)를 선택한다. 두께 부가창(74)내에서 폰트 디자이너는 새로운 두께 상자(76)내에 폭 값을 지정한다. 새로운 두께 상자(76)내에 입력되는 폭 값은 폰트 디자이너가 지정하는 획(66)의 외곽선상의 제 1 및 제 2 포인트(78, 80)에 의하여 입력된다. 폭 값은 제 1 및 제 2 포인트(78, 80)사이의 직선거리를 측정함에 의해 얻어진다. 폰트 디자이너는 관찰된 유사획들의 폭들을 관찰함으로써 외곽선상의 포인트들을 판정한다.
기본획은 형상 포인트들 및 커브 세그멘트들인 이차변수들을 판정한 후 완성된다. 도 4a 내지 도 4j에서는 기본획의 이차변수들을 지정하기 위해 폰트 디자이너에 의해 사용되는 기본획 캐드도구를 도시하였다. 폰트 디자이너는 기본획을 불러들임으로써 시작한다. 도 4a에 도시한 바와 같이, 폰트 디자이너는 캐드도구(104)의 주 메뉴로부터 획 불러오기(Load Stroke) 명령(106)을 선택하여 도 4b에 도시한 바와 같이 기본 획 식별창(basic stroke ID window, 112)을 불러온다. 각 기본획은 지정된 코드로서 미리 저장되어 있다. 폰트 디자이너는 입력되는 코드로 지정된 기본획을 불러들이기 위하여 식별창(112)내에 있는 필드블록(114)내에 기본획의 코드를 입력한다. 시스템은 불러들인 기본획을 두개의 2차원 좌표공간내에 표시한다. 첫번째 좌표공간(108)은 그래픽적 대화영역이고 두번째 좌표공간(110)은 더 작은 비대화영역이다. 두번째 좌표공간(110)은 불러들인 획을 다양한 해상도로 표시하는 데 사용될 수 있다. 양 좌표공간들은 캐드도구의 GUI 막대들 아래에 위치한 캐드 작업공간(107)내에서 표시된다. 도 4c에 도시한 바와 같이 불러들인 기본획은 두 좌표공간(108, 110)내에서 표시되며 관계코드(117)와 표시된 획 키포인트의 지정된 폭 값들(115)은 작업공간(107)내에 표시된다.
도 4c에 도시한 바와 같이, 폰트 디자이너는 캐드도구(104)의 메뉴막대로부터 포인트 부가(Add Point) 명령(116)을 선택함에 의해 형상 포인트를 입력한다. 형상 포인트 윈도우(118)는 캐드도구(104)의 한 부분상에 나타난다. 마우스와 같은 커서제어장치를 사용하여 폰트 디자이너는 제 1 좌표공간(108)내에서 표시된 기본획의 외곽선상에 형상 포인트를 지정한다. 폰트 디자이너는 형상 포인트들을 외곽선이 구분되는 각도나 방향상 유의차있는 변화를 만드는 외곽선상의 포인트들 및 본질적으로 일정한 반경을 가지는 커브 세그멘트의 양쪽 끝에 위치시킨다.
지정된 형상 포인트에 대한 좌표값은 형상 포인트 윈도우(118)내에서 X 좌표 값에 대한 형상포인트 좌표상자(124b)와 Y 좌표 값에 대한 형상포인트 좌표상자(124c)로 표시된다. 폰트 디자이너는 다음으로 하나이상의 키포인트의 코드를 입력한다. 이는 형상 포인트를 키포인트에 결합시킨다. 이는 X 좌표에 대한한 집합과 Y 좌표에 대한 한 집합인, 두 집합의 두 키포인트 필드코드 상자들(126)에서 수행된다.
폰트 디자이너는 또한 폭 필드코드 창(128)내에 폭 값(들)의 두 코드를 입력한다. 하나는 X 좌표에 대한 폭 값을 입력하고, 다른 하나는 Y 좌표에 대한 폭 값을 입력하는 것이다. 입력된 코드들은 참조값들로 언급된다.
시스템은 입력된 참조 키포인트(들)과 폭 값 결합에 따른 선 지정 공식들중의 하나인, n을 불러들인다. 불러들인 공식은 지정된 형상 포인트들의 참조 상대 X 및 Y 위치들을 계산한다. 참조 상대 X 및 Y 위치들은 나중에 디스플레이 프로세서에 의해 사용되기 위하여 불러들인 공식들을 역 방향으로 인가하여 형상 포인트 위치들을 계산하기 위해 저장된다.
도 4d의 예에서 폰트 디자이너는 형상 포인트(124a)를 획 근사 키포인트((120), (코드 0))의 외곽선상에 지정한다. 또한, 폰트 디자이너는 X 및 Y 좌표들에 대한 참조 값들(키포인트(120), (코드 0))과 폭 값들 = 16(역시 코드 0)을 입력시켰다. 시스템은 디자이너가 입력시킨 참조 키포인트 및 폭 값과 결합된 선지정 공식을 불러들인다. 상기 공식은 X 및 Y 좌표로 나뉘어 실행된다. 다음 수학식 1 과 수학식 2는 도 4d에 도시한 바와 같이 형상 포인트 124a를 위하여 수행된다. X와 Y는 각각 지정된 형상 포인트(124a)의 x 좌표값 및 y 좌표값이다. Xk0와 Yk0는 각각 키포인트(120, (코드 0))의 x 좌표값 및 y 좌표값이다. W0는 폭 코드 0의 폭 값이다.
XRel= (X - Xk0)/W0
YRel=(Y - Yk0)/W0
도 4e에 도시한 바와 같이 다음의 두 수학식 3과 수학식 4는 형상 포인트(130)에 대한 폰트 디자이너 참조 값들에 따라 불러들여지고 실행된다.
XRel= (X - Xk0)/(Xk1- Xk0)
YRel= (Y - Yk0)/(Yk1- Yk0)
수학식 3과 수학식 4는 계산에서 폭 값을 사용하지 않는 것에 주목하라. 이것은 두개의 다른 참조 키포인트들이 윈도우(118)의 상자들(126)내에서 구분되어 x 및 y 형상포인트 참조값들을 계산하기 위해 폭 값의 사용을 요구하지 않기 때문이다.
일단 두개의 연속적 형상포인트들이 존재하면 형상 포인트들 사이에 커브 세그멘트를 생성할 수 있다. 도 4f를 참조하면, 디자이너는 도 4g의 라인 또는 커브생성을 시작하기 위하여 주 메뉴로부터 라인부가(Add Line) 명령(136)을 선택한다. 도 4 g에 도시한 바와 같이, 디자이너는 한 쌍의 연속적인 형상포인트들(137, 139)을 선택하고, 선택된 형상포인트들(137, 139)을 연결하는 라인(138)과 이동가능한중간제어포인트(140, mid-control point)를 나타내는 라인부가명령(136)을 선택한다. 중간제어포인트(140)는 커서제어장치에 의하여 공간(108)내의 어떤 위치로도 이동이 가능하다. 도 4h에 도시한 바와 같이, 중간제어포인트(140) 위치가 두 형상포인트들(137, 139)을 연결하는 직선과 겹치지 않으면 커브가 생성된다. 커브 생성은 이계 베지어 커브생성(second order Bezier curve generation)에 따라 수행된다.
다음의 수학식들은 상술한 커브생성을 수행하는 프로세서에 의해 사용된다.
Xp1= Xp2이면,
XR= Xmid- XP1
Xp1≠ Xp2이면,
XR= (Xmid- (XP1+ XP2)/2)/| XP1- XP2
Yp1= Yp2이면,
YR= Ymid- YP1
Yp1≠ Yp2이면,
YR= (Ymid- (YP1+ YP2)/2)/| YP1- YP2
여기서, P1은 제 1 형상포인트이고, P2는 제 2 형상포인트이며, mid는 중간제어포인트이고, R은 형상포인트들 사이의 커브 세그멘트를 결정하는 데 사용되는 비율 값(ratio value)이다. 도 5에는 수학식 5 내지 수학식 8을 사용하여 만든 커브생성의 기하학적 도형을 도시하였다.
도 4i에서는 중간제어포인트(140)는 생성된 커브 세그멘트가 형판 기본획의 외곽선에 일치하도록 위치된다. 도 4j에서는 모든 형상포인트들 및 중간제어포인트들이 적절하게 기본획의 외곽선을 묘사하도록 지정되었다. 다음으로 일차 및 이차변수들은 도 4a 내지 도 4j에 나타낸 예에서의 기본획에 대해 할당되고 저장된다. 또한 풀다운 메뉴(142, pull-down menu)에서 지정된 기본획에 대해 기본 해상도가 할당된다. 풀다운 메뉴(142)는 선택가능한 표시 및 기본 스크립 문자공간 해상도 옵션들을 나타낸다.
기본획의 획들은 다음의 수학식 9로 표현된다.
S = fi({Kj},{Wk})
여기서, S는 획(stroke), i는 i번째또는 기본획의 기본획 코드 i, fi는 기본획 코드 i에 해당하는 형상포인트 참조공식, Kj는 키포인트 j, 그리고 Wk는 k번째 참조폭이다. 공식 fi는 키포인트 위치들 |{Kj}|과 참조폭 값 |{Wk}|의 입력 데이타를 받아들여 외곽선을 생성하기 위한 알고리즘이다. 이와같이, 폰트의 획 데이타는 상기 수학식 9의 수학적 표현으로 저장된다.
이하에서는 사용자 캐드도구에 대하여 기술하기로 한다. 도 6a 내지 도 6e에서는 상기 도 2d에서 설명한 사용자폰트 생성방법을 수행하기 위한 사용자 캐드도구를 기술한다. 상기 사용자 캐드도구는 역시 문자표시 영역(176)을 갖는 작업공간을 포함하는 윈도우즈형 그래픽 사용자 인터페이스이다. 사용자는 첫번째로 사용자가 저장된 획집합을 만들기 위한 형판으로 사용하고자 하는 한 폰트의 문자를 선택한다. 선택된 문자는 문자표시 영역(176)내에 표시된다. 또한, 작업공간내에서 캐드도구는 저장된 획들의 수를 공간(148)에, 사용자가 현재 작업하고 있는 획 번호를 공간(177)에 표시한다. 두번째로 사용자는 이전에 생성된 기본획을 선택된 문자의 각 획들로 할당한다. 사용자는 선택된 문자내에서 각 획에 가장 근접하게 유사한 기본획을 선택한다. 예를들어 도 6b에 도시한 바와 같이, 사용자는 표시된 문자의 상부 수평획(183)에 일치시키도록 기본획(181, (코드번호 97))을 선택하였다. 선택된 기본획(181)은 문자표시영역(176)내에서 표시된다. 기본획 선택 후에, 문자의 획에 일치시키기 위한 기본획 모양의 변경으로 기본획의 키포인트들을 이동시킨다. 예를들어 도 6c와 도 6d에 도시한 바와 같이 사용자는 외곽선 획의 키포인트 위치들에 보다 잘 일치하도록 기본획(181)의 키포인트 위치들을 변경하였다. 이차변수들은 상대 키포인트의 위치에 따라 실시간적으로 이동되고 표시된다. 최좌측의 키포인트는 위치(39, 54)에서 (37, 35)로 이동되었다. 키포인트 이동은 사용자 제어 커서 또는 키포인트들에 대한 새로운 좌표위치를 직접 입력함으로써 수행된다.
도 6b 내지 도 6e는 획(183)에 보다 가깝게 일치시키기 위해 기본획(181)에대한 기본획의 폭 값을 사용자가 증가시키는 예를 도시하였다. 사용자는 도 6c에서와 같이 폭 값을 본래값 12에서 16으로 증가시키고, 도 6e에서 나타낸 바와 같이 폭 값을 20으로 더 증가시켜, 기본획(181)을 선택된 문자의 획에 일치시킨다. 도 6e에서는 기본획(181)이 획(183)과 일치한다. 다음에는 새로 만들어진 기본획(181)이 향후 획 생성에 사용되기 위하여 메모리에 저장된다. 사용자 폰트 생성 캐드도구는 윈도우형 운용시스템에서 사용되도록 설계되었으나 다양한 다른 종류의 운용 시스템에서도 구현될 수 있다. 사용자 폰트 생성 캐드도구에 의해 수행되는 상기 방법은 이미지 분석 기법을 사용하여 자동적으로 수행될 수 있다. 사용자폰트 생성 캐드도구내에서 수행되는 상기 방법내에는 이하 설명될 힌팅의 방법이 있으며, 힌팅은 또한 기본획 캐드도구내에서 수행될 수 있다.
이하에서는 힌팅에 대하여 기술하기로 한다. 폰트 디자이너 또는 사용자는 저해상도 공간내에 구축된 폰트의 획의 표시품질을 높이기 위해 힌트들을 키포인트들에 할당한다. 획들이 겹치는 것을 피하도록 힌트 정보는 문자 렌더링동안에 획 모양들을 수정하고, 관측공간내에서 획들의 대칭성을 유지하도록 한다. 힌트 정보를 할당하기 위하여, 폰트 디자이너 또는 사용자는 도 6e에 도시한 바와 같이 어느 획의 키포인트(들)이 힌팅을 요구하는 지를 간단히 라벨링한다.
힌트 정보는 키포인트들을 표시하는 동안에 사용된다. 힌트정보를 갖는 키포인트는 그것이 나타나는 표시 셀(pixel)의 중앙으로 이동된다. 도 7a와 도 7b에는 미라벨링 및 라벨링 키포인트들을 대비하여 나타내었다. 즉, 획(189a)의 외곽선은 외곽선이 두 컬럼의 표시셀들의 50%이상을 포괄하고 있기 때문에 저해상도 공간내에서 표시셀의 두 컬럼을 활성화시킨다.
반면에 도 7b에 도시한 바와 같이 키포인트들(187b, 188b)이 라벨링되고, 상기 키포인트들은 표시셀의 중앙으로 이동된다. 즉, 키포인트들(187b, 188b)이 동일 표시셀 컬럼의 표시셀들의 중앙으로 이동되기 때문에 획(189b)은 한 표시셀의 획 폭을 유지한다. 획(189b)의 외곽선은 픽셀들의 한 컬럼만을 활성화시킨다.
도 8에는 캐드도구내에서 만들어진 "밍-타입(Ming-type)" 폰트에서 폰트 구분자(410)의 저장 데이타를 도시하였다. 별표 부호(191)는 힌트정보로 라벨링된 결합 키포인트들을 나타낸다. 컬럼(192)은 코드들로 나타내어지는 형상포인트들의 리스트이다. 컬럼(193)은 X 및 Y 좌표를 갖는 참조 키포인트들의 리스트이다. 컬럼(194)은 코딩된 폭 값들의 리스트이다. 컬럼(195)은 키포인트 위치들에 상대적으로 형상포인트들을 판정하기 위한 참조된 상대 위치들의 리스트이다. 컬럼(195)내의 상대위치값들은 상대좌표 위치들을 계산하는 수학식 1 내지 수학식 4와 같은 선지정 공식에 의하여 판정된다. 컬럼(196)은 코드들로 나타낸 커브 세그멘트들의 리스트이다. 컬럼(197)은 각 커브 세그멘트에 대한 두 형상포인트들의 쌍을 리스트한다. 컬럼(198)은 중간제어포인트들을 판정하기 위한 비율들의 리스트이다. 컬럼(199)은 코드들로 나타낸 획영역들의 리스트이며, 마지막으로 컬럼(200)은 영역 꼭지점들을 이루는 형상포인트들을 나타낸다.
도 8의 최상부에 나타낸 저장된 키포인트 위치들은 선지정 해상도 값에 따라 저장된다. 도 8의 예에서 나타낸 키포인트 위치는 256x256 문자공간에서 상대적으로 저장된다. 만일 문자(410)가 256x256 문자공간이 아닌 문자공간내에서 표시된다면, 문자공간내에서 키포인트 위치들을 유지하기 위해서 비례적인 계산이 수행된다.
이하에서는 문자 렌더링(rendering)에 대하여 기술하기로 한다. 폰트 생성기법은 본질적으로 폰트 제작기법과 반대과정이다. 제 1 단계에서는 각 힌트정보를 갖는 라벨링된 키포인트를 상기 키포인트들이 어드레싱되는 도트 매트릭스 그리드(픽셀)내에서 중심화한다. 만일 키포인트가 힌트정보로 라벨링되어 있지 않으면 키포인트 위치는 표시 문자공간내에서 변경되지 않는다. 다음으로, 키포인트들과 폭 값들의 위치에 상대적으로 생성 및 저장된 값들에 의하여 형상포인트들이 계산된다. 계산된 형상포인트들사이의 커브 세그멘트들은 생성 및 저장된 중간제어포인트들 또는 중간제어포인트 비율들에 의하여 계산된다. 커브 세그멘트들은 획들의 외곽선을 형성하기 위하여 결합된다. 마지막으로, 채움(filling)기법으로 획 외곽선내의 영역을 채운다. 채움기법은 선정의된 원칙에 따라 픽셀을 활성화한다. 본 발명에서 픽셀의 절반이상이 계산된 획 외곽선내의 영역으로 덮여지거나 픽셀의 중심부가 계산된 획 외곽선내에 있으면 출력장치상에서 픽셀이 활성화된다. 처리시간을 줄이기 위하여 일반적으로 알려진 채움기법은 픽셀들을 활성화하는 다양한 반경의 커브 세그멘트들을 나타내기 위한 선정의된 수의 코드들(cords)을 사용한다. 효율적으로 문자들을 생성하는 것을 이루기 위하여 다른 종류의 채움기법들이 사용될 수도 있다.
도 9에는 밍-타입 폰트의 샘플문자들에 대한 본 발명의 방법에 의하여 만들어진 24x24의, 저해상도, 단일 문자 비트맵으로의 출력결과를 도시하였다.
본 발명의 바람직한 실시예들이 개시되었으나, 본 발명의 정신 및 범위내에서 다양한 변형이 만들어질 수 있다는 것은 명백할 것이다.
상술한 바와 같이 본 발명의 저해상도 및 고해상도 공간을 위한 획형 폰트 생성 장치 및 방법은, 저해상도 공간내에서 우량품질의 획을 표시하는 것이 가능하고, 폰트 디자이너로 하여금 기본획들의 디자인을 위한 변수들을 용이하게 선택할 수 있도록 한다.

Claims (11)

  1. 출력장치상에 표시하기 위한 특정 폰트의 복수의 획들을 포함하는 문자 이미지들을 생성하는 문자 생성 방법에 있어서,
    (a) 각 획은 선정의되고 선저장된 키포인트들, 폭 값들, 커브 값들, 및 상기 키포인트들에 대해 선정의된 공간적 관계를 갖는 형상포인트들을 포함하고, 키포인트는 키포인트들이 선정의된 특정 표시위치를 요구할 때 힌트정보로 라벨링되어, 출력장치상에서 표시하기 위한 문자를 선택하는 단계;
    (b) 상기 키포인트들의 선저장 위치상의 문자들 표시공간내에서 상기 선택된 문자의 획들과 결합된 언라벨링 키포인트들을 계산하는 단계;
    (c) 상기 키포인트들의 선저장 위치에 따라 라벨링된 키포인트를 포함하는 비트맵셀의 중앙부내에서 문자들 표시공간내의 상기 선택된 문자의 획들과 결합된 라벨링 키포인트들을 계산하는 단계; 및
    (d) 선택된 문자 비트맵 공간내 문자의 획들을 폭 값들, 커브 값들, 및 그 획들과 계산된 라벨링 키포인트 및 언라벨링 키포인트들의 형상포인트들에 따라 출력장치상에서 렌더링하는 단계를 포함하는 문자 생성 방법.
  2. 제 1 항에 있어서, 상기 단계 (d)는,
    i) 위치되어진 라벨링 키포인트들과 언라벨링 키포인트들과의 선정의된 공간적 관계에 따라서 형상포인트들을 계산하는 단계;
    ii) 커브 값들에 따라 연속적인 계산된 형상포인트들 사이의 커브 세그멘트들을 계산하는 단계;
    iii) 상기 계산된 커브 세그멘트들을 연결함에 의해 획들에 대한 외곽선들을 계산하는 단계; 및
    iv) 픽셀의 절반이상이 계산된 획 외곽선내의 영역으로 덮여지거나 픽셀의 중심부가 계산된 획 외곽선내에 있으면 출력장치상에서 픽셀들을 활성화하는 단계를 더 포함하는 문자 생성 방법.
  3. 제 2 항에 있어서, 상기 단계 (d.ii)는,
    두 연속적인 형상포인트들사이에 하나이상의 중간제어포인트가 존재하는것을 정의하는 단계; 및
    하나이상의 정의된 중간제어포인트와 해당 형상포인트들에 따라 베지어 삼각형(Bezier triangle) 커브생성을 사용하여 상기 커브 세그멘트들을 계산하는 단계를 더 포함하는 문자 생성 방법.
  4. 출력장치상에 표시하기 위한 특정 폰트의 복수의 획들을 포함하는 문자 비트맵 이미지들을 생성하는 문자 생성 장치에 있어서,
    (a) 각 획은 선정의되고 선저장된 키포인트들, 폭 값들, 커브 값들, 및 상기 키포인트들에 대해 선정의된 공간적 관계를 갖는 형상포인트들을 포함하고, 키포인트는 키포인트가 선정의된 특정 표시위치를 요구할 때 힌트정보로 라벨링되어, 출력장치상에서 표시하기 위한 문자를 선택하는 수단;
    (b) 상기 키포인트들의 선저장 위치상의 문자들 표시공간내에서 상기 선택된 문자의 획들과 결합된 언라벨링 키포인트들을 수정하는 수단;
    (c) 상기 키포인트들의 선저장 위치에 따라 라벨링된 키포인트를 포함하는 비트맵셀의 중앙부내에서 문자들 표시공간내의 상기 선택된 문자의 획들과 결합된 라벨링 키포인트들을 수정하는 수단; 및
    (d) 선택된 문자 비트맵 공간내 문자의 획들을 폭 값들, 커브 값들, 및 그 획들과 계산된 라벨링 키포인트 및 언라벨링 키포인트들의 형상포인트들에 따라 출력장치상에서 렌더링하는 수단을 포함하는 문자 생성 장치.
  5. 제 4 항에 있어서,
    위치되어진 라벨링 키포인트들과 언라벨링 키포인트들과의 선정의된 공간적 관계에 따라서 형상포인트들을 계산하는 수단;
    커브 값들에 따라 연속적인 계산된 형상포인트들사이의 커브 세그멘트들을 계산하는 수단;
    상기 계산된 커브 세그멘트들을 연결함에 의해 획들에 대한 외곽선들을 계산하는 수단; 및
    픽셀의 절반이상이 계산된 획 외곽선내의 영역으로 덮여지거나 픽셀의 중심부가 계산된 획 외곽선내에 있으면 출력장치상에서 픽셀들을 활성화하는 수단을 더 포함하는 문자 생성 장치.
  6. 제 5 항에 있어서, 상기 외곽선들을 계산하는 수단은,
    두 연속적인 형상포인트들사이에 하나이상의 중간제어포인트가 존재하는것을 정의하는 수단; 및
    하나이상의 정의된 중간제어포인트와 해당 형상포인트들에 따라 베지어 삼각형(Bezier triangle) 커브생성을 사용하여 상기 커브 세그멘트들을 계산하는 수단을 더 포함하는 문자 생성 장치.
  7. 획 묘사를 사용하여 획형 폰트들을 생성하고, 비트맵 공간내에서 획형 폰트들을 표시하기 위한 획 모양 비트맵을 생성하며, 출력장치, 프로세서, 및 메모리를 포함하는 컴퓨터 그래픽 사용자 인터페이스 도구에 있어서,
    마스터 문자 집합을 관찰하는 수단;
    생성된 기본획들 집합내의 각 기본획은 키포인트들과 폭 값들을 포함하도록 관찰된 마스터 문자들 집합으로부터 상기 기본획 집합을 생성하는 수단;
    비트맵 공간내에서 표시될 때 비트맵 셀의 중앙부내에 표시되어야 하는 기본획들의 키포인트들을 구분하고 라벨링하는 수단; 및
    라벨링 키포인트 및 언라벨링 키포인트들을 갖는 상기 생성된 기본 획들을 상기 메모리상에 저장하는 수단을 포함하는 컴퓨터 그래픽 사용자 인터페이스 도구.
  8. 제 7 항에 있어서,
    각 기본획에 대한 획 모양 공식을 정의하는 수단;
    상기 정의된 획 모양 공식들에 따라 형상포인트들을 정의하는 수단;
    상기 정의된 형상포인트들 사이의 커브 세그멘트들을 정의하는 수단; 및
    정의된 획 모양 공식, 형상포인트들, 커브 세그멘트들을 상기 메모리상에 저장하는 수단을 더 포함하는 컴퓨터 그래픽 사용자 인터페이스 도구.
  9. 제 8 항에 있어서, 상기 커브 세그멘트들을 정의하는 수단은,
    형상포인트들의 각 쌍에 대하여 하나이상의 중간제어포인트를 정의하는 수단; 및
    하나이상의 중간제어포인트와, 결합된 형상포인트들의 쌍에 따라 베지어(Bezier) 커브 세그멘트들을 계산하는 커브 생성기를 더 포함하는 컴퓨터 그래픽 사용자 인터페이스 도구.
  10. 하나의 문자들 집합을 포함하는 아시안 언어의 폰트 생성 방법에 있어서,
    기본획들 집합내의 상기 각 기본획은 상기 문자들 집합내에서 사용되는 유사 획들 집합을 나타내고, 상기 각 기본획은 복수의 키포인트들과 하나이상의 폭 값에 의해 구분되며, 상기 문자들 집합을 관찰한 것을 기초로 상기 기본 획들을 생성하는 단계; 및
    (i) 각 문자내의 각 획에 대하여, 상기 획에 가장 가깝게 근사하는 상기 기본획 집합내의 상기 기본획을 구분하는 단계;
    (ii) 상기 키포인트들과 폭 값들을 통해 상기 획에 일치하도록 상기 기본획을 처리함에 의해 수정된 키포인트들과 수정된 폭 값을 갖는 수정된 기본획을 공식화하는 단계;
    (iii) 상기 수정된 키포인트들과 수정된 폭 값들을 메모리에 저장하는 단계; 및
    (iv) 모든 문자들이 복수의 수정된 기본획들로 나타내어질 때까지 단계 (i) 내지 (iii)을 반복하는 단계에 의해 상기 문자들 집합내의 각 문자들을 한 획씩 구축하기 위하여 상기 기본획들 집합을 사용하는 단계를 포함하는 아시안 언어의 폰트 생성 방법.
  11. 제 10 항에 있어서, 상기 폰트생성 방법은,
    키포인트들이 어드레싱되는 픽셀내에의 표시될 각 문자의 수정된 각 기본획에 대하여 미리정한 수정된 키포인트를 중심화하는 단계를 포함하여 상기 방법에 의해 생성된 상기 폰트의 문자들을 저해상도 공간내에 표시하는 문자 표시 단계를 더 포함하는 아시안 언어의 폰트 생성 방법.
KR1019970039205A 1996-09-20 1997-08-18 저해상도및고해상도공간을위한획형폰트생성방법및장치 KR100297238B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/717.172 1996-09-20
US08/717,172 US6157390A (en) 1996-09-20 1996-09-20 Stroke-based font generation
US8/717.172 1996-09-20

Publications (2)

Publication Number Publication Date
KR19980024148A KR19980024148A (ko) 1998-07-06
KR100297238B1 true KR100297238B1 (ko) 2001-08-21

Family

ID=24880989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970039205A KR100297238B1 (ko) 1996-09-20 1997-08-18 저해상도및고해상도공간을위한획형폰트생성방법및장치

Country Status (2)

Country Link
US (1) US6157390A (ko)
KR (1) KR100297238B1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6597360B1 (en) * 1998-10-07 2003-07-22 Microsoft Corporation Automatic optimization of the position of stems of text characters
US6911980B1 (en) * 1999-12-10 2005-06-28 Adobe Systems Incorporated Manipulation of curves and surfaces
US6661417B1 (en) 2000-08-28 2003-12-09 Dynalab Inc. System and method for converting an outline font into a glyph-based font
US7197706B1 (en) * 2000-08-30 2007-03-27 Celartem Inc. Method and system for ensuring accurate font matching in documents
WO2002089105A2 (en) 2001-05-02 2002-11-07 Bitstream, Inc. Methods, systems, and programming for producing and displaying subpixel-optimized images and digital content including such images
US7385612B1 (en) 2002-05-30 2008-06-10 Adobe Systems Incorporated Distortion of raster and vector artwork
CA2396346C (en) * 2002-07-03 2008-10-21 Vadim Fux Compact scalable stroke fonts
US20040183817A1 (en) * 2002-12-03 2004-09-23 Bitstream Inc. Methods, systems, and programming for scaled display of web pages
US7292249B2 (en) * 2004-05-28 2007-11-06 Microsoft Corporation Appropriately rendering a graphical object when a corresponding outline has excessive control points
US8253742B2 (en) * 2004-05-28 2012-08-28 Microsoft Corporation Rendering stroke pairs for graphical objects
US7256786B2 (en) * 2004-05-28 2007-08-14 Microsoft Corporation Appropriately rendering a graphical object when a corresponding outline has exact or inexact control points
US7710422B2 (en) * 2004-07-26 2010-05-04 Microsoft Corporation Font representations
JP2006048277A (ja) * 2004-08-03 2006-02-16 Dynacomware Taiwan Inc ネットワークを利用した外字提供システム及び方法
TWI282527B (en) * 2005-11-03 2007-06-11 Univ Tamkang A calligraphy practicing system
US20080120541A1 (en) * 2006-11-22 2008-05-22 Dynacomware Taiwan Inc. System and method for on-line retrieval and typing of non-standard characters
US20080303822A1 (en) * 2007-06-09 2008-12-11 Nathan Daniel Taylor Font metadata
US8243077B2 (en) * 2008-08-29 2012-08-14 Dynacomware Taiwan Inc. Method for generating stroke-based font characters for a low-resolution display
TWI409800B (zh) * 2008-10-13 2013-09-21 Dynacomware Taiwan Inc 根據筆劃基礎字型資料產生低解像度中文小字品質顯示的方法和裝置
US8239763B1 (en) * 2009-01-07 2012-08-07 Brooks Ryan Fiesinger Method and apparatus for using active word fonts
US8854375B2 (en) 2010-10-19 2014-10-07 Dynacomware Taiwan Inc. Method and system for generating gray dot-matrix font from binary dot-matrix font
KR101667643B1 (ko) * 2015-01-22 2016-10-19 삼성전자주식회사 Gpu 기반 벡터 그래픽을 위한 이미지 렌더링 장치, 방법 및 컴퓨터 프로그램
CN108763879A (zh) * 2018-05-30 2018-11-06 北京溯斐科技有限公司 一种水印字库的自动生成方法和装置
CN112598768B (zh) * 2021-03-04 2021-05-25 中国科学院自动化研究所 常用字体汉字笔画拆解方法、系统、装置
CN114333723B (zh) * 2021-12-28 2023-08-18 浙江航芯科技有限公司 Lcd显示文字的方法、系统、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897638A (en) * 1987-02-27 1990-01-30 Hitachi, Ltd. Method for generating character patterns with controlled size and thickness

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4990903A (en) * 1986-10-27 1991-02-05 Bestfont Ltd. Method for storing Chinese character description information in a character generating apparatus
US5212769A (en) * 1989-02-23 1993-05-18 Pontech, Inc. Method and apparatus for encoding and decoding chinese characters
CN1015218B (zh) * 1989-11-27 1991-12-25 郑易里 字根编码输入法及其设备
JP3037854B2 (ja) * 1993-07-13 2000-05-08 富士通株式会社 文字生成方法及びその装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4897638A (en) * 1987-02-27 1990-01-30 Hitachi, Ltd. Method for generating character patterns with controlled size and thickness

Also Published As

Publication number Publication date
KR19980024148A (ko) 1998-07-06
US6157390A (en) 2000-12-05

Similar Documents

Publication Publication Date Title
KR100297238B1 (ko) 저해상도및고해상도공간을위한획형폰트생성방법및장치
US5852448A (en) Stroke-based font generation independent of resolution
US6501475B1 (en) Glyph-based outline font generation independent of resolution
JP3021547B2 (ja) 文字パターン発生方法
US4897638A (en) Method for generating character patterns with controlled size and thickness
KR100219072B1 (ko) 중심축 변환을 이용한 폰트 및 그 폰트 서체의 변형 및 라스터라이징 방식
US4608662A (en) Method for editing document
US5754187A (en) Method for data compression of digital data to produce a scaleable font database
US6249908B1 (en) System and method for representing graphical font data and for converting the font data to font instructions
US5159668A (en) Method and apparatus for manipulating outlines in improving digital typeface on raster output devices
US5262760A (en) Modifying a graphics display image
US6661417B1 (en) System and method for converting an outline font into a glyph-based font
US5155805A (en) Method and apparatus for moving control points in displaying digital typeface on raster output devices
US6151032A (en) Stroke-based glyph-outline font generation in low/high resolution space
EP0864987B1 (en) Document processing method and apparatus, corresponding program and storage unit
US5719595A (en) Method and apparauts for generating a text image on a display with anti-aliasing effect
EP0684582A2 (en) Method and apparatus for font data storage and retrieval
JPS62123573A (ja) コンピユ−タ・グラフイツク装置およびその操作方法
JP2014167635A (ja) 低解像度ディスプレイのためのストロークベースのフォント処理方法
US5489920A (en) Method for determining the optimum angle for displaying a line on raster output devices
EP0537030B1 (en) Character or graphic processing method
US7012605B1 (en) Method for generating fonts from very small data sets
EP0469915B1 (en) Figure processing method and apparatus
JP3448606B2 (ja) 全解像度空間における筆画ベース文字発生方法及び装置
EP0469918B1 (en) Figure processing method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110509

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20140429

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 17

EXPY Expiration of term