3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Delphi][小ネタ] Skia でカスタムフォントを使う

Last updated at Posted at 2025-11-16

Skia でフォントを登録する

Skia には、任意のフォントをプログラム側で登録する仕組みがあります。
「このアプリ専用のフォントを、わざわざ Windows にインストールしたくない」——そんな時に使えるのが、Skia のフォント登録です。

使い方は、とても簡単です。

フォント登録
// uses に System.Skia, FMX.Skia を追加

// フォントファイル名から ISkTypeface を生成
// ISkTypeface は interface なので自動的に解放される
var SkTypeface := 
  TSkTypeface.MakeFromFile('ttf / otf へのパス');

// SkTypeface と名前を結びつける
TSkDefaultProviders.TypefaceFont.RegisterTypeface(
  SkTypeface, 
  '登録するフォントの名前'
);

TSkTypeface.MakeFromFileTSkDefaultProviders.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 は良いのにフォントが残念」といった悲劇を回避できます。

3
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?