KR20140051311A - 폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템 - Google Patents

폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템 Download PDF

Info

Publication number
KR20140051311A
KR20140051311A KR1020147004152A KR20147004152A KR20140051311A KR 20140051311 A KR20140051311 A KR 20140051311A KR 1020147004152 A KR1020147004152 A KR 1020147004152A KR 20147004152 A KR20147004152 A KR 20147004152A KR 20140051311 A KR20140051311 A KR 20140051311A
Authority
KR
South Korea
Prior art keywords
point
outline
font
instructions
points
Prior art date
Application number
KR1020147004152A
Other languages
English (en)
Other versions
KR101565719B1 (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 KR20140051311A publication Critical patent/KR20140051311A/ko
Application granted granted Critical
Publication of KR101565719B1 publication Critical patent/KR101565719B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/109Font handling; Temporal or kinetic typography
    • 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)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 컴퓨터 문자 입력 기술 분야에 관한 것으로, 보다 구체적으로, 폰트 아웃라인의 변화에 따른 명령들을 생성하는 방법 및 시스템에 관한 것이다. 상기 방법은 다음을 포함한다: 상기 폰트 아웃라인의 원본 데이터를 판독하는 단계; 상기 폰트 아웃라인을 변형하는 단계; 상기 폰트 아웃라인의 데이터의 변화에 따른 명령들을 생성하는 단계; 및 상기 명령들을 문자 라이브러리로 도입시키는 단계.

Description

폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING CONTROL INSTRUCTION ACCORDING TO CHANGE OF GLYPH OUTLINE}
본 발명은 컴퓨터 문자 입력 기술 분야에 관한 것으로, 보다 구체적으로, 폰트 아웃라인(font outline)의 변화에 따른 명령들을 생성하는 방법 및 시스템에 관한 것이다.
트루타입(TrueType)은 애플 컴퓨터사 및 마이크로소프트사와 연합하여 개발한 매스 폰트 표시(math font description)의 새로운 기술이다. 대(大) 폰트 크기에 있어서, 트루타입의 문자 라이브러리(character library)는 양호하게 표시될 수 있다. 그러나, 워드에서, 소(小) 4-크기(12-점 타입) 및 5-크기(10.5-점 타입) 등의 일반적인 폰트 크기들과 같은 소 폰트 크기에 있어서, 일부 상대적으로 복잡한 스트로크들(strokes)이 겹쳐질 수 있다.
이러한 문제점을 해결하는 2 가지 방법이 존재한다. 하나는 비트맵을 내장시키는 것이고, 다른 하나는 명령을 추가하는 것이다. 내장된 비트맵은 명령이 나타나기 전에 일반적으로 사용되는 기술이다. 예를 들면, 윈도우 XP에서 제공된 송 타입페이스 폰트 라이브러리(Song Typeface font library)는 내장된 비트맵을 이용하여, 소 폰트 크기의 표시 부작용의 문제점을 해결한다. 그러나, 이러한 기술은 제공되는 소 폰트 크기 각각의 비트맵 데이터를 필요로 하여, 그 결과 데이터 양이 커지게 된다. 현재, 소 폰트 크기들의 표시 부작용의 문제점을 해결하는 가장 이상적인 방법은 문자 라이브러리, 예를 들면, 윈도우 7에서 제공된 마이크로소프트 야헤이 폰트 라이브러리(Microsoft Yahei font library)에 명령들을 추가하는 것이다.
현재, 명령을 추가하는 일반적인 툴들은, 예를 들면, 폰트 랩(FontLab)은 명령이 영향을 미치는 방향을 설정할 필요가 있고, 각 동작은 각 명령에 대응한다. 방법은 다수의 동작 횟수를 수반한다. 동작의 횟수가 많아질수록, 명령의 길이는 길어질 것이다. 문자 라이브러리는 수천 개의 문자들(즉, 기호, 수, 문자 또는 단어)를 포함하여, 이로써, 복수의 설계자들이 문자 라이브러리에 명령을 추가하기 위해 여러 달 동안의 힘든 일을 요하게 한다. 너무 많은 불필요한 동작은 명령을 추가하는 횟수를 연장시킬 것이다. 게다가, 복잡한 문자들을 대해 만족되는 효과를 이루기 위해서는 반복 조정이 필요하다. 이로써, 문자 라이브러리는 너무 많은 동작 횟수를 통한 너무 긴 명령들로 인해 과대하게 커질 수 있다.
종래 기술의 결함에 대해, 본 발명은, 문자 라이브러리에 명령을 추가하는 동작을 간단하게 하고, 명령 데이터의 크기를 줄일 수 있는 폰트 아웃라인의 변화 에 따른 명령을 생성하는 방법 및 시스템을 제공하는 것에 있다.
상술된 문제점을 해결하기 위해, 본 발명은 다음의 기술적 해결책에 의해 달성된다:
폰트 아웃라인의 변화에 따른 명령들을 생성하는 방법은:
(1) 상기 폰트 아웃라인의 원본 데이터(original data)를 판독하는 단계;
(2) 상기 폰트 아웃라인을 변형하는 단계;
(3) 상기 폰트 아웃라인의 데이터의 변화에 따른 명령들을 생성하는 단계; 및
(4) 상기 명령들을 문자 라이브러리로 도입시키는 단계;를 포함한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 단계 (1)에서, 상기 폰트 아웃라인의 원본 데이터는 문자를 구성하는 아웃라인 곡선들의 수와, 그리고 각 아웃라인 곡선에 대응하는 점들의 수, 좌표 및 속성들을 포함한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 단계 (2)에서, 상기 폰트 아웃라인를 변형하는 단계는 상기 문자를 구성하는 아웃라인 곡선들에 대응하는 점들의 좌표들을 변형함으로써, 이루어진다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 단계 (3)에서, 상기 명령들을 생성하는 단계는:
① 상기 폰트 아웃라인의 원본 데이터와, 상기 폰트 아웃라인의 변형된 데이터를 판독하는 단계;
② 상기 폰트 아웃라인의 원본 데이터와, 상기 폰트 아웃라인의 변형된 데이터에 따라 상기 폰트 아웃라인 데이터의 변화를 계산하는 단계;
③ 상기 폰트 아웃라인 데이터의 변화에 대응하는 명령들을 생성하는 단계;를 포함한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 단계 ②에서, 상기 폰트 아웃라인의 변화의 특정 계산은: 상기 문자를 구성하는 아웃라인 곡선들에 대응하는 각 점의 X 좌표 및 Y 좌표의 변화 값들을 계산한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 단계 ③에서, 상기 대응하는 명령들을 생성하는 특정 계산은:
첫째, 폰트 크기, 거리 측정 방향, 및 점 이동 방향을 각각 설정하는 명령들을 생성하고;
둘째, 상기 폰트 아웃라인의 변화에 따라서, 점 이동 명령, 점 정렬 명령 또는 직선들의 교차점으로 점들을 이동시키는 명령을 생성하고; 여기서 방향은 X 방향 또는 Y 방향이다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 점 이동 명령, 점 정렬 명령, 및 직선들의 교차점으로 점들을 이동시키는 명령의 특정 계산은:
상기 아웃라인 곡선에 대응하는 점이 X 또는 Y 방향으로 이동할 시에, 스택 상의 점의 일련 번호를 집어넣고, 스택 상의 점의 이동 값을 집어넣으며, 그리고 상기 점 이동 명령을 입력하고;
X 또는 Y 방향으로 상기 아웃라인 곡선에 대응하는 2 개의 점들의 좌표 값들이 동일한 값이 될 시에, 기준 점으로 일측 점을 설정하고, 스택 상의 타측 점의 일련 번호를 집어넣으며, 그리고 점 정렬 명령을 입력하며; 그리고
상기 아웃라인 곡선에 대응하는 점이 2 개의 직선들의 교차점으로 이동할 필요가 있을 시에, 스택 상의 점의 일련 번호를 집어넣고, 스택 상에 2 개의 직선들 각각의 시작 점들 및 종료 점들의 일련 번호들을 집어넣으며, 그리고 직선들의 교차점으로 점을 이동시키는 명령을 입력한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 명령들을 생성한 후에, 상기 단계 ③은, 상기 명령들의 분류, 조합 및 최적화의 절차들을 더 포함한다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 명령들의 분류는 상기 명령들을 이동 방향 및 유형에 따라 분류시키는 단계를 포함하고:
상기 이동 방향에 따른 분류 및 조합은 점들의 동일한 이동 방향의 명령들 모두가 집합적으로 동작되고 상기 이동 방향이 단지 한번 만 설정된다는 것을 나타내고;
상기 유형에 따른 분류 및 조합은 상기 점들의 동일한 이동 값의 명령들 모두가 순환적으로 동작되는 것, 그리고 점들을 동일한 점으로 정렬시키는 명령들 모두가 순환적으로 동작되는 것을 나타내며; 점들의 이동 값 및 기준 점은 반복적으로 설정되지 않는다.
바람직하게, 폰트 아웃라인의 변화에 따른 명령을 생성시키는 방법에서, 상기 최적화는, 서로 다른 유형들의 명령들이 이용가능할 시에, 짧은 길이를 가진 명령이 바람직하게 선택되는 것을 나타낸다.
폰트 아웃라인의 변화에 따른 명령들을 생성하는 시스템은:
상기 폰트 아웃라인의 원본 데이터를 판독하는 판독 장치;
상기 폰트 아웃라인을 변형하는 변형 장치;
상기 폰트 아웃라인의 데이터의 변화에 따른 명령들을 생성하는 생성 장치; 및
상기 명령들을 문자 라이브러리로 도입시키는 도입 장치(importing device);를 포함한다.
본 발명의 방법 및 시스템에 따르면, 폰트 아웃라인이 직접 변형될 수 있고, 폰트 아웃라인의 변형은 명령들의 생성과는 별개로 이루어지며, 상기 명령들은 폰트 아웃라인의 데이터의 변화에 따라 자동으로 생성되며, 그리고 상기 명령들은 생성될 시에 분류, 결합 및 최적화되고, 이로 인해, 동작은 간단해지고, 명령들의 길이는 줄어들게 되고, 명령들의 추가 효율은 개선되며, 그리고 명령 데이터의 엄청난 양으로 인해 문자 라이브러리가 너무 많아지는 문제점이 극복될 수 있다.
도 1은 특정 실시예에 따라서 폰트 아웃라인의 변화에 기반한 명령을 생성하는 시스템의 구조적인 도면이다.
도 2는 특정 실시예에 따라서 폰트 아웃라인의 변화에 기반한 명령을 생성하는 방법의 순서도이다.
도 3은 특정 실시예에 따른 명령을 추가하기 전에, 아웃라인 곡선 및 문자 “
Figure pct00001
”의 비트맵의 개략적인 도면이다.
도 4는 특정 실시예에 따른 명령을 추가한 후에, 아웃라인 곡선 및 문자 “
Figure pct00002
”의 개략적인 도면이다.
도 5는 특정 실시예에 따른 명령을 생성하는 방법의 순서도이다.
이하에서, 본 발명의 실시예들은 첨부된 도면과 함께 상세하게 기술할 것이다.
도 1에 도시된 바와 같이, 폰트 아웃라인의 변화에 따른 명령들을 생성하는 시스템은 다음을 포함한다: 판독 장치(11); 변형 장치(12); 생성 장치(13); 및 도입 장치(14).
판독 장치(11)는 폰트 아웃라인의 원본 데이터를 판독하고, 폰트 아웃라인의 원본 데이터를 변형 장치(12) 및 생성 장치(13) 각각에 전송하기 위해 사용된다. 변형 장치(12)는 폰트 아웃라인을 변형하고, 변형된 폰트 아웃라인의 데이터를 생성 장치(13)에 전송하기 위해 사용되고; 여기서, 변형 장치(12)는 수동 동작으로 폰트 아웃라인을 변형시킬 수 있거나, 또는 변형은 프로그래밍 언어로 자동으로 실행될 수 있다. 예를 들면, 일부 문자들에서 동일한 스트로크들의 폰트 아웃라인들은 동일한 방식으로 변형되거나; 또는 폰트 아웃라인들은 수동 동작 및 프로그래밍 언어의 조합을 사용하여 변형될 수 있다. 생성 장치(13)는, 판독 장치(11)로부터 전송된 폰트 아웃라인의 원본 데이터와, 변형 장치(12)로부터 전송된 폰트 아웃라인의 변형 데이터에 따라서, 폰트 아웃라인 데이터의 변화를 획득하고; 폰트 아웃라인 데이터의 변화에 따른 명령을 생성하며; 그리고 생성된 명령을 도입 장치(14)에 전송시키기 위해 사용된다. 도입 장치(14)는 생성 장치(13)로부터 전송된 명령들을 문자 라이브러리로 도입시키기 위해 사용된다.
도 2에 도시된 바와 같이, 트루타입의 모든 문자 라이브러리들에 있어서, 도 1에 도시된 시스템과 함께, 폰트 아웃라인의 변화에 따른 명령들을 생성하는 방법이 다음 단계들로 이루어진다:
(1) 판독 장치(11)는 폰트 아웃라인의 원본 데이터를 판독한다.
폰트 아웃라인의 원본 데이터는, 문자로 구성된 아웃라인 곡선들의 수(아웃라인 곡선들은 이차 곡선들(quadratic curves) 또는 직선들이고, 각 아웃라인 곡선은 선 상의 2 개의 인접한 점들 간의 선을 나타내고; 예를 들면, 도 3에 도시된 바와 같이, 문자 “
Figure pct00003
”의 상부 좌측 코너에 있는 “`”을 구성하는 4 개의 아웃라인 곡선들이 위치한다)와, 각 아웃라인 곡선에 대응하는 점들의 수(점들은 선 상의 점들 및 제어 점들을 포함하고; 선 상의 점들은 각 아웃라인 곡선의 시작 또는 종료에 위치하고, 다시 말해, 선 상의 점들은 각 아웃라인 곡선의 시작 점들 또는 종료 점들이다. 제어 점들은 각 아웃라인 곡선의 형상을 제어하기 위해 사용된다. 아웃라인 곡선이 이차 곡선일 시에, 아웃라인 곡선은 하나의 제어 점 및 선상의 2 개의 점들에 대응하고; 아웃라인 곡선이 직선일 시에, 아웃라인 곡선은 단지 선 상의 2 개의 점들에 대응한다. 2 개의 연결된 아웃라인 곡선들은 선 상의 3 개의 점들에 대응하고, 다시 말해, 2 개의 연결된 아웃라인 곡선들의 선 상에 공유 점으로서 선 상의 점은 2 개의 아웃라인 곡선들 각각에 대응한다. 2 개의 아웃라인 곡선들이 연결된 경우, 의미하는 바와 같이, 하나의 아웃라인 곡선의 시작 점 또는 종료 점은 또 다른 아웃라인 곡선의 시작 점 또는 종료 점과 일치하고, 그 결과 선 상의 일치 점은, 2 개의 아웃라인 곡선들이 교차하는 경우 대신에, 2 개의 아웃라인 곡선들의 선 상에 공유 점으로 고려된다. 예를 들면, 선 상의 4 개의 점들 및 2 개의 제어 점들을 포함한, 도 3에 도시된 문자 “
Figure pct00004
”의 상부 좌측 코너의 “`”을 구성하는 아웃라인 곡선들에 대응하는 6 개의 점들이 있다)와, 점들의 좌표들(명령들이 문자 라이브러리에 추가되는 각 문자를 위한 2 차원 좌표계이 설정된다. 상기 좌표계의 가로 축은 X 축이고, 세로 축은 Y 축이 되고; 이로써, 문자를 구성하는 아웃라인 곡선들 각각에 대응하는 점들 각각은 좌표계의 고유 좌표를 가진다)와, 그리고 점들의 속성(예를 들면, 점의 속성은 점이 아웃라인 곡선 상에 존재하는지를 나타낼 수 있다. 만약 점이 선 상에 존재한다면, 점은 선 상의 점이고; 그렇지 않으면, 점은 제어 점이고; 또 다른 예시에서, 점의 속성은 점의 일련 번호일 수 있고, 여기서 일련 번호는 동작을 용이하게 하기 위해 서로 문자를 구성하는 모든 이웃라인 곡선들에 대응하는 점들을 구별하기 위해 각 점에 할당되며, 그리고 일련 번호는 일반적으로 아웃라인 곡선들을 따라 시계 반향 또는 반 시계 반향으로 배치된다. 예를 들면, 문자 “
Figure pct00005
”의 상부 좌측 코너의 “`”에 대응하는 6 개의 점들은 시계 방향으로 배치되고, 상기 점들의 일련 번호 각각은 ①-⑥이다. 이들 중, 일련 번호 ①, ②, ④ 및 ⑤의 점은 선 상의 점들이며; 그리고 일련 번호 ③ 및 ⑥의 점은 제어 점들이다. 또 다른 예시에서, 점이 선 상의 점일 시에, 점의 속성은 점이 해당 아웃라인 곡선의 시작 점인지 또는 종료 점인지 나타낼 수 있다)를 포함한다.
(2) 변형 장치(12)는 폰트 아웃라인을 변형시킨다.
폰트 아웃라인을 변형하는 것은 폰트 아웃라인의 원본 데이터에서 점들의 좌표를 변형함으로써, 이루어질 수 있고, 즉, 폰트 아웃라인의 변형은 문자들을 구성하는 아웃라인 곡선들에 대응하는 점들의 좌표들을 변형함으로써, 실행된다. 예를 들면, 한 점의 원본 좌표는 (0, 0)이고, 변형된 좌표는 (5, 10)이다. 점에 대응하는 아웃라인 곡선들의 형상의 변형은 점을 이동시킴으로써 이루어지고, 그 결과 아웃라인 곡선들에 의해 구성된 문자의 폰트 아웃라인은 변형된다.
(3) 생성 장치(13)는 폰트 아웃라인 데이터의 변화에 따른 명령들을 생성한다. 도 5에 도시된 바와 같이, 이는 다음 단계들을 포함한다:
① 폰트 아웃라인의 원본 데이터와, 폰트 아웃라인의 변형된 데이터를 판독하는 단계;
② 폰트 아웃라인의 원본 데이터와, 폰트 아웃라인의 변형된 데이터에 따라 폰트 아웃라인 데이터의 변화를 계산하는 단계;
특정 계산 절차는 각 점의 X 좌표 및 Y 좌표의 변화 값들을 계산한다. 예를 들면, 한 점의 원본 좌표가 (0, 0)이고, 상기 점의 변형된 좌표가 (5, 10)인 경우, 상기 점의 변화는 다음과 같을 것이다: X 방향으로 5 추가, Y 방향으로 10 추가. 문자를 구성하는 아웃라인 곡선들의 수, 각 아웃라인 곡선에 대응하는 점들의 수와, 그리고 점들의 속성은 변화되지 않을 것이다.
③ 폰트 아웃라인 데이터의 변화에 대응하는 명령들을 생성하는 단계;
예를 들면, X 좌표들이 동일한 값이 되는 이러한 점들에 대해서, X 방향으로 점 정렬 명령이 추가될 수 있다. X 좌표들이 동일하게 추가되거나 감소된 값이 되는 점들에 대해서, X 방향의 점 이동 명령이 추가될 수 있다.
트루타입의 명령 세트는, 스택 동작(stack operation), 저장 동작, 포인터 동작(pointer operation), 논리 문장들(logical sentences), 산술 계산(arithmetic calculations), 점프 및 루프(loops) 등의 컴퓨터용 명령을 포함하는, 좌표 데이터와는 무관한 명령 시스템이다.
자동으로 명령들을 생성하는 단계들은 다음과 같다(자동으로 생성된 모든 명령들은 트루타입의 명령 세트에 종속된다):
첫째, 폰트 크기, 거리 측정 방향, 및 점 이동 방향을 각각 설정하는 명령들을 생성하는 단계(동일한 문자에 대해 서로 다른 폰트 크기가 있는 폰트 아웃라인들에 서로 다른 문제점들이 존재할 수 있고, 이로써, 서로 다른 명령들은 추가될 수 있고, 폰트 크기는 설정되어야 한다). 거리 측정 방향 및 점 이동 방향은 기술 분야의 통상의 기술자에 의해 현실적인 조건들에 따라 달라지게 설정될 수 있다. 예를 들면, 거리 측정 방향 및 점 이동 방향은 X 방향 또는 Y 방향 각각으로 설정될 수 있거나; 또는 미리 설정된 직선들의 방향들을 따라 설정될 수 있다. 도 3 및 4에 도시된 바와 같이, 일련 번호 ②가 선 상의 점이 도 3에 도시된 위치로부터 도 4에 도시된 위치로 이동할 필요가 있는 경우에, 상기 점은 우선 X 방향으로 이동하고 그 후 Y 방향으로 이동할 수 있거나, 또는 우선 Y 방향으로 이동하고 그 후 X 방향으로 이동할 수 있다; 그렇지 않다면, 이동하기 전의 일련 번호 ②의 점의 위치와 이동 후의 일련 번호 ②의 점의 위치 간에 형성된 직선의 방향을 따라 이동할 수 있고, 다시 말해, 직선 방향을 따라 도 3에 도시된 위치로부터 도 4에 도시된 위치로 직접 이동할 수 있다.
둘째, 폰트 아웃라인의 변화에 따라서, 명령들, 예를 들면 점 이동 명령, 점 정렬 명령들 및 직선들의 교차점에 점들을 이동시키는 명령이 생성된다.
점 이동 명령들, 점 정렬 명령들 및 직선들의 교차점에 점을 이동시키는 명령들의 특정 계산 절차들은 다음은 같다:
아웃라인 곡선에 대응하는 점이 X 또는 Y 방향으로 이동하게 될 시에, 스택 상의 점의 일련 번호를 집어넣고(pushing), 스택 상의 점의 이동 값을 집어넣으며, 그리고 점 이동 명령을 입력하는 단계;
X 또는 Y 방향으로 아웃라인 곡선에 대응하는 2 개의 점들의 좌표 값들이 동일한 값이 될 시에, 기준 점으로 일측 점을 설정하고 스택 상의 타측 점의 일련 번호를 집어넣으며, 그리고 점 정렬 명령을 입력하는 단계;
아웃라인 곡선에 대응하는 점이 2 개의 직선들의 교차점으로 이동할 필요가 있을 시에, 스택 상의 점의 일련 번호를 집어넣고, 스택 상에 2 개의 직선들 각각의 시작 점들 및 종료 점들의 일련 번호들을 따로따로 집어넣으며, 그리고 직선들의 교차점으로 점을 이동시키는 명령을 입력하는 단계.
일 실시예를 상세하게 설명하면, 하나의 점의 폰트 크기가 14이고 일련 번호가 4이며, X 방향으로 10 이동했다고 하자.
명령들을 추가하기 전에, 우선, 값들의 단위 변환(unit conversion)이 실행되어야 한다.
점의 실제 이동 값은: px=10 × 64/wstep이고;
여기서, wstep은 스크린 상의 좌표 단위에 대응하는 한 픽셀 단위 값이다.
wstep=20이라하면, px=32이다.
우선, 폰트 크기의 명령이 14로 설정되면서, 다음과 같이 실행된다:
MPPEM[ ]
PUSHB[ ]
14
EQ[ ]
IF[ ]
……
EIF[ ]
나아가, 실행되는 명령들은“…”의 부분으로 추가된다.
다음은 “…”을 대체하는 명령들이다:
첫째, 거리 측정 방향과, 점 이동 방향이 설정된다:
SVTCA[1]
나아가, 점의 일련 번호 4가 스택 상에 집어 넣어진다:
PUSHB[ ]
4
나아가, 점의 이동 값 32는 스택 상에 집어 넣어진다:
PUSHB[ ]
32
최종적으로, 점 이동 명령이 입력된다:
SHPIX[ ]
다른 상황들에서, 자동으로 명령들을 생성하는 과정은 상술한 바와 유사한다.
상술된 실시예에서, 명령은 명령 이름으로 나타낸다. 문자 라이브러리들에서, 명령들 모두는 2 비트 16 진법 값들이다. 예를 들면, SVTCA[1]의 실제 값은 0X01이다.
④ 이동 방향 및 유형에 따라 명령들을 분류하는 단계; 동일한 유형의 명령들을 결합하는 단계; 동일한 기능을 가진 명령들로 루프를 실행하는 단계; 및 보다 짧은 명령들로 대체될 수 있는 명령들의 시퀀스를 최적화하는 단계.
좌표의 변화를 가진 각각의 점이 단계 ③에 따라 동작하는 경우, 동일 유형 또는 동일 기능의 명령들은 반복적으로 입력될 수 있고, 너무 긴 명령들의 길이를 초래할 것이다. 명령들을 간단하게 하기 위해서, 상기 명령들은 이동 방향 및 유형에 따라 분류될 수 있다. 동일한 유형의 명령들은 결합될 수 있고; 그리고 동일한 기능의 명령들은 루프들에 실행될 수 있다.
이동 방향에 따른 분류 및 동일한 유형의 명령들의 조합(예를 들면, 동일한 점 이동 방향의 모든 명령들)은, 동일한 점 이동 방향의 명령들 모두가 집합적으로 실행되고 이동 방향은 단지 한번 만 설정된다는 것을 나타내고; 여기서 점들의 이동 방향은 X 방향 또는 Y 방향으로 설정될 수 있다. 예를 들면, 이동 방향이 X 방향으로 설정될 후에, X 방향의 모든 명령들이 실행되고; 그 후에, 이동 방향은 Y 방향으로 설정되고, 그리고 Y 방향의 모든 명령들이 실행된다.
유형에 따른 분류 및 조합에 의하여, 명령들은 일반적으로 동일한 기능의 명령들(예를 들면, 점들의 동일한 이동 값의 명령들 모두와, 점들을 동일한 점으로 정렬시키는 명령들 모두)과, 서로 다른 기능들의 명령들로 나누어질 수 있고, 다시 말해, 점들의 동일한 이동 값의 명령들 모두는 순환적으로 실행되고; 게다가, 점들을 동일한 점으로 정렬시키는 명령들 모두는 순환적으로 실행되며; 그리고 점들의 이동 값 및 기준 점은 반복적으로 설정되지 않는다. 다시 말해, 동일 기능의 명령들은 순환적으로 실행될 수 있다.
최적화는, 상대적으로 짧은 길이를 가진 명령이 바람직하게 선택되되, 서로 다른 유형들의 명령들이 실행될 시에 선택되는 것을 나타낸다. 예를 들면, 직선들의 교차점으로 점을 이동시키는 효과는 또한 X 방향 및 Y 방향 각각을 따라 점을 이동시킴으로써 획득될 수 있다. 그러나, 직선들의 교차점으로 점을 이동시키는 명령은 비교적 짧다. 이러한 상황에서, 점 이동 명령 대신에, 점을 직선의 교차점으로 이동시키는 명령이 사용된다.
동일한 점의 이동 값을 가진 명령들 모두를 순환적으로 실행시키는 일 실시예는 다음과 같이 설명될 것이다:
다음과 같이, 일련 번호들 4, 5 및 6을 가진 3 개의 점들이 X 방향으로 10 이동했다고 하고; 여기서, 점들의 폰트 크기, 거리 측정 방향 및 이동 방향의 설정은 여기서 생략된 단계 ③을 참고한다. 점의 실제 이동 값은 변환 후에 32가 된다고 한다.
스택 상으로 이동되려는 점들의 일련 번호들을 집어넣는다:
PUSHB[ ]
4 5 6
스택 상으로 이동되려는 점들의 번호들을 집어넣는다:
PUSHB[ ]
3
루프 횟수(looping times)를 설정한다:
SLOOP[ ]
스택 상의 점들의 이동 값 32를 집어넣는다:
PUSHB[ ]
32
점 이동 명령을 입력한다:
SHPIX[ ]
볼 수 있는 바와 같이, 동일한 이동 값을 가진 점들에 있어서, 이들은 단지 순서대로 이동할 수 있고; 다시 말해, 일련 번호들이 4, 5 및 6인 점들은 X 방향으로 순서대로 10만큼 이동하고; 즉, 동일한 이동 값을 가진 점들에 있어서, 이동 명령들은 한 동작으로 완료될 수 없고; 대신에 이들은 순환적으로 실행되어야 한다.
(4) 도입 장치(14)는 문자 라이브러리로 명령들을 도입시킨다.
명령들을 실행시킴으로써, 변형된 폰트 아웃라인이 생성된다. 이로써, 도 3에 도시된 문자 “
Figure pct00006
”의 폰트 아웃라인은 명령들이 추가된 후 도 4에 도시된 폰트 아웃라인이 된다.
분명하게, 다양한 변화 및 변형은 본 발명의 기술 사상 및 권리 범위를 벗어남 없이 기술 분야의 통상의 기술자에 의해 구현될 수 있다. 본 발명은 이러한 변화 및 변형을 포함하되, 이러한 변형 및 변화가 청구항 및 청구항의 균등물의 권리 범위 내에 있다면, 포함할 수 있다.

Claims (11)

  1. 폰트 아웃라인의 변화에 따른 명령들을 생성하는 방법에 있어서,
    (1) 상기 폰트 아웃라인의 원본 데이터를 판독하는 단계;
    (2) 상기 폰트 아웃라인을 변형하는 단계;
    (3) 상기 폰트 아웃라인의 데이터의 변화에 따른 명령들을 생성하는 단계; 및
    (4) 상기 명령들을 문자 라이브러리로 도입시키는 단계;를 포함하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  2. 청구항 1에 있어서,
    상기 단계 (1)에서, 상기 폰트 아웃라인의 원본 데이터는 문자를 구성하는 아웃라인 곡선들의 수와, 그리고 각 아웃라인 곡선에 대응하는 점들의 수, 좌표 및 속성들을 포함하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  3. 청구항 2에 있어서,
    상기 단계 (2)에서, 상기 폰트 아웃라인를 변형하는 단계는 상기 문자를 구성하는 아웃라인 곡선들에 대응하는 점들의 좌표들을 변형함으로써, 달성되는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  4. 청구항 1 내지 3 중 어느 한 항에 있어서,
    상기 단계 (3)에서, 상기 명령들을 생성하는 단계는:
    ① 상기 폰트 아웃라인의 원본 데이터와, 상기 폰트 아웃라인의 변형된 데이터를 판독하는 단계;
    ② 상기 폰트 아웃라인의 원본 데이터와, 상기 폰트 아웃라인의 변형된 데이터에 따라 상기 폰트 아웃라인 데이터의 변화를 계산하는 단계;
    ③ 상기 폰트 아웃라인 데이터의 변화에 대응하는 명령들을 생성하는 단계;를 포함하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  5. 청구항 4에 있어서,
    상기 단계 ②에서, 상기 폰트 아웃라인의 변화의 특정 계산은: 상기 문자를 구성하는 아웃라인 곡선들에 대응하는 각 점의 X 좌표 및 Y 좌표의 변화 값들을 계산하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  6. 청구항 4에 있어서,
    상기 단계 ③에서, 상기 대응하는 명령들을 생성하는 특정 계산은:
    첫째, 폰트 크기, 거리 측정 방향, 및 점 이동 방향을 각각 설정하는 명령들을 생성하고;
    둘째, 상기 폰트 아웃라인의 변화에 따라서, 점 이동 명령, 점 정렬 명령 또는 직선들의 교차점으로 점들을 이동시키는 명령을 생성하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  7. 청구항 6에 있어서,
    상기 점 이동 명령, 점 정렬 명령, 및 직선들의 교차점으로 점들을 이동시키는 명령의 특정 계산은:
    상기 아웃라인 곡선에 대응하는 점이 X 또는 Y 방향으로 이동할 시에, 스택 상의 점의 일련 번호를 집어넣고, 스택 상의 점의 이동 값을 집어넣으며, 그리고 상기 점 이동 명령을 입력하고;
    X 또는 Y 방향으로 상기 아웃라인 곡선에 대응하는 2 개의 점들의 좌표 값들이 동일한 값이 될 시에, 기준 점으로 일측 점을 설정하고, 스택 상의 타측 점의 일련 번호를 집어넣으며, 그리고 점 정렬 명령을 입력하며; 그리고
    상기 아웃라인 곡선에 대응하는 점이 2 개의 직선들의 교차점으로 이동할 필요가 있을 시에, 스택 상의 점의 일련 번호를 집어넣고, 스택 상에 2 개의 직선들 각각의 시작 점들 및 종료 점들의 일련 번호들을 집어넣으며, 그리고 직선들의 교차점으로 점을 이동시키는 명령을 입력하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  8. 청구항 7에 있어서,
    상기 명령들을 생성한 후에, 상기 단계 ③은, 상기 명령들의 분류, 조합 및 최적화의 절차들을 더 포함하는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  9. 청구항 8에 있어서,
    상기 명령들의 분류는 상기 명령들을 이동 방향 및 유형에 따라 분류시키는 단계를 포함하고:
    상기 이동 방향에 따른 분류 및 조합은 동일한 점 이동 방향의 명령들 모두가 집합적으로 동작되고 상기 이동 방향이 단지 한번 만 설정된다는 것을 나타내고;
    상기 유형에 따른 분류 및 조합은 상기 점들의 동일한 이동 값의 명령들 모두가 순환적으로 동작되는 것; 및 점들을 동일한 점으로 정렬시키는 명령들 모두가 순환적으로 동작되는 것을 나타내며; 점들의 이동 값 및 기준 점은 반복적으로 설정되지 않는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  10. 청구항 8에 있어서,
    상기 최적화는, 서로 다른 유형들의 명령들이 이용가능할 시에, 짧은 길이를 가진 명령이 바람직하게 선택되는 것을 나타내는, 폰트 아웃라인의 변화에 따른 명령 생성 방법.
  11. 폰트 아웃라인의 변화에 따른 명령들을 생성하는 시스템에 있어서,
    상기 폰트 아웃라인의 원본 데이터를 판독하는 판독 장치(11);
    상기 폰트 아웃라인을 변형하는 변형 장치(12);
    상기 폰트 아웃라인의 데이터의 변화에 따른 명령들을 생성하는 생성 장치(13); 및
    상기 명령들을 문자 라이브러리로 도입시키는 도입 장치(14);를 포함하는, 폰트 아웃라인의 변화에 따른 명령 생성 시스템.
KR1020147004152A 2011-12-30 2012-12-31 폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템 KR101565719B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110457048.1 2011-12-30
CN201110457048.1A CN103186365B (zh) 2011-12-30 2011-12-30 一种根据字形轮廓变化生成控制指令的方法及系统
PCT/CN2012/088065 WO2013097817A1 (zh) 2011-12-30 2012-12-31 一种根据字形轮廓变化生成控制指令的方法及系统

Publications (2)

Publication Number Publication Date
KR20140051311A true KR20140051311A (ko) 2014-04-30
KR101565719B1 KR101565719B1 (ko) 2015-11-03

Family

ID=48677545

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004152A KR101565719B1 (ko) 2011-12-30 2012-12-31 폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템

Country Status (6)

Country Link
US (1) US20140136966A1 (ko)
EP (1) EP2746912A4 (ko)
JP (1) JP5923604B2 (ko)
KR (1) KR101565719B1 (ko)
CN (1) CN103186365B (ko)
WO (1) WO2013097817A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6628942B2 (ja) * 2017-07-05 2020-01-15 三菱電機株式会社 描画装置及び描画方法
CN108763879A (zh) * 2018-05-30 2018-11-06 北京溯斐科技有限公司 一种水印字库的自动生成方法和装置
US10922863B2 (en) * 2018-06-21 2021-02-16 Adobe Inc. Systems and methods for efficiently generating and modifying an outline of electronic text
US11030388B2 (en) 2018-09-25 2021-06-08 Adobe Inc. Live text glyph modifications

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155805A (en) * 1989-05-08 1992-10-13 Apple Computer, Inc. Method and apparatus for moving control points in displaying digital typeface on raster output devices
US5335330A (en) * 1990-05-14 1994-08-02 Matsushita Electric Industrial Co., Ltd. Information processing apparatus with optimization programming
JP3391822B2 (ja) * 1992-05-08 2003-03-31 株式会社リコー アウトラインフォントファイル圧縮方法
US5715473A (en) * 1992-12-29 1998-02-03 Apple Computer, Inc. Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font
US5586241A (en) * 1993-06-10 1996-12-17 Hewlett-Packard Company Method and system for creating, specifying, and generating parametric fonts
ES2142384T3 (es) * 1993-12-15 2000-04-16 Canon Kk Aparato y metodo para la seleccion de un juego de caracteres.
US5583978A (en) * 1994-05-27 1996-12-10 Bitstream Inc. Apparatuses and methods for creating and using portable fonted texts with embedded automatically-created font descriptions
JP3280160B2 (ja) * 1994-06-30 2002-04-30 キヤノン株式会社 文書処理装置および文書処理方法
JP3238580B2 (ja) * 1994-09-14 2001-12-17 シャープ株式会社 太め細め文字生成装置
US6249908B1 (en) * 1998-03-27 2001-06-19 Microsoft Corporation System and method for representing graphical font data and for converting the font data to font instructions
JP2000298731A (ja) * 1999-04-15 2000-10-24 Oki Data Corp アウトラインフォント編集方法とその装置
US7583267B2 (en) * 2005-12-19 2009-09-01 Microsoft Corporation Stroke contrast in font hinting
CN101388112B (zh) * 2008-09-17 2010-09-29 北大方正集团有限公司 一种变换字体风格的方法及系统
CN101996309B (zh) * 2009-08-19 2013-07-10 北大方正集团有限公司 笔画轮廓的识别和变换方法及相关装置
CN102467487B (zh) * 2010-11-16 2015-04-22 北京大学 用于控制字库使用范围的方法和装置

Also Published As

Publication number Publication date
EP2746912A4 (en) 2015-04-15
JP2014527193A (ja) 2014-10-09
CN103186365B (zh) 2015-08-12
CN103186365A (zh) 2013-07-03
WO2013097817A1 (zh) 2013-07-04
JP5923604B2 (ja) 2016-05-24
EP2746912A1 (en) 2014-06-25
US20140136966A1 (en) 2014-05-15
KR101565719B1 (ko) 2015-11-03

Similar Documents

Publication Publication Date Title
US6678410B1 (en) Generating a glyph
KR101565719B1 (ko) 폰트 아웃라인의 변화에 따라 명령을 생성하는 방법 및 시스템
JP3019202B2 (ja) 中心軸変換を利用したフォント書体変換方法
CN110598195A (zh) 一种装修图纸的自动标注排版方法
JP7282932B2 (ja) フォント生成モデルトレーニング方法、字庫作成方法、装置及び機器
CN102163340A (zh) 计算机系统中实现三维动态几何图形数据信息标注的方法
KR20140056260A (ko) 한자 구성 방법과 장치, 문자 구성 방법과 장치, 및 폰트 라이브러리 생성 방법
JP7289942B2 (ja) フォント生成モデルトレーニング方法、フォントライブラリ作成方法、フォント生成モデルトレーニング装置、フォントライブラリ作成装置、電子機器、コンピュータ可読記憶媒体、及び、コンピュータプログラム
CN107145686A (zh) 一种利用AutoCAD创建支架ANSYS有限元分析模型的方法
CN102467519B (zh) 基于地理信息系统的可视化标绘方法及系统
JP2015228021A (ja) マンマシンインターフェースのグラフィック表示用の文字列の処理技術
US11610046B2 (en) Automatic generation of responsive font effects based on font elements
CN104133809B (zh) 一种字形加粗方法
CN111507064A (zh) 一种基于计算机的字库设计方法
CN109766601A (zh) 电气配管计算机辅助绘图方法及装置
CN106273470B (zh) 立体打印装置及其打印数据存储方法
JP4905899B2 (ja) 情報処理システム、情報処理プログラムおよび可読記録媒体
WO2018139700A1 (ko) 외곽선 폰트를 이용하여 metafont에 의한 폰트를 생성하는 장치 및 방법
KR102329116B1 (ko) 부분 글자 스타일 변경이 가능한 폰트 생성 장치 및 방법
Sarakinos et al. A software tool for generic parameterized aircraft design
CN106919742B (zh) 一种自动标注断面位置的方法和装置
Banjanin et al. Font hinting techniques and the importance of applying these techniques for high-quality display of fonts on the output device screen
US20240054713A1 (en) Apparatus and method to generate an animated graphical object
CN109117804B (zh) 一种基于Unity 3D的移动设备的文字临摹方法
Zhu et al. Design of Laser Marking Control Software based on C

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee