ベジエ曲線入門06「Glyphs API」

フォント制作ソフトやレンダリングエンジンをプログラミング言語から操作する API もフォーマットの一つと言えるでしょう。このうち、フォント制作で触れるものとしてGlyphs API を紹介します。

Glyphs は、ドイツのタイプデザイナー・ソフトウェア開発者である Georg Seifert によって開発されたもので、ここ数年で人気を集めたフォント制作アプリケーションです。Glyphs API では Python で Glyphs の操作を行うことができます。自動化やグリフ全体に対する操作などに便利です。

Glyphs API では、例として以下のようにしてグリフのアウトラインにアクセスします。メニューバーの「ウィンドウ > マクロパネル」でマクロパネルを開き実行します。

# 現在開いているフォントにアクセス
font = Glyphs.font

# ‘A’ というグリフにアクセス
glyph = font.glyphs[‘A’]

# マスターレイヤー(通常は最初のレイヤー)にアクセス
layer = glyph.layers[0]
   
# グリフ内の各パスに対する処理
for i, path in enumerate(layer.paths):
   print(f”—— {i} 番目の Path ——“)

   # パスに含まれるノードの座標とタイプを表示
   for node in path.nodes:
       print(f”({node.x}, {node.y}) {node.type})

ノードを表しているのは GSNode オブジェクトです。

以下が実行結果のサンプルです。0番目のパスは A の外周、1番目のパスは A の中にあるくり抜かれた三角形の形を表しています。

—— 0 番目の Path ——
(95.0, 259.0) – line
(298.0, 259.0) – line
(360.0, -20.0) – line
(380.0, -20.0) – line
(209.0, 748.0) – line
(185.0, 748.0) – line
(15.0, -20.0) – line
(34.0, -20.0) – line
—— 1 番目の Path ——
(294.0, 277.0) – line
(99.0, 277.0) – line
(196.0, 723.0) – line

前記事の GLIF の Point と似た形式です。

GSNode の詳しい仕様を知りたい場合は、以下の資料を参照してください。

https://docu.glyphsapp.com/#GSNode

(LN)

シリーズアーカイブ タイプエンジニアリング / ベジエ曲線入門