Skia でフォントを登録する
Skia には、任意のフォントをプログラム側で登録する仕組みがあります。
「このアプリ専用のフォントを、わざわざ Windows にインストールしたくない」——そんな時に使えるのが、Skia のフォント登録です。
使い方は、とても簡単です。
フォント登録
// uses に System.Skia, FMX.Skia を追加
// フォントファイル名から ISkTypeface を生成
// ISkTypeface は interface なので自動的に解放される
var SkTypeface :=
TSkTypeface.MakeFromFile('ttf / otf へのパス');
// SkTypeface と名前を結びつける
TSkDefaultProviders.TypefaceFont.RegisterTypeface(
SkTypeface,
'登録するフォントの名前'
);
TSkTypeface.MakeFromFile と TSkDefaultProviders.TypefaceFont.RegisterTypeface を呼ぶだけで、指定した名前でフォントを利用できるようになります。
ISkTypeFace は interface なので、リファレンスカウント形式でインスタンスが管理されています。
そのため、一度 変数に入れてから RegisterTypeface に渡す必要があります。
具体的な例はこちら↓
フォント登録
var SkTypeface :=
TSkTypeface.MakeFromFile(
'.\Fonts\NotoSansJP-VariableFont_wght.ttf'
);
TSkDefaultProviders.TypefaceFont.RegisterTypeface(
SkTypeface,
'NotoSansJp' // フォント指定時に使う
);
フォントを使う
// RegisterTypeface の第2引き数で指定した文字列で
// フォントを指定できます
Text1.TextSettings.Font.Family := 'NotoSansJp';
このフォントは TSkLabel に限らず、Font.Family を持つすべてのコントロールで有効です。
(Skia を有効化すると描画エンジンが Skia に切り替わるため)
リッチな表現が求められる場面では Skia の出番が多いはずです。
Skia はカスタムフォントに対応しているので「UI は良いのにフォントが残念」といった悲劇を回避できます。