差分

ナビゲーションに移動 検索に移動

SkiaSharpで日本語文字列を描画する

574 バイト追加, 2017年11月16日 (木) 15:28
編集の要約なし
'''Ascent'''とは、タイポグラフィ用語のひとつで、アルファベット大文字の高さ(Cap Height)に加え、文字の「跳ね」を考慮した高さのことである。SkiaSharpで日本語を描画する場合はかならず明示的にフォントを読み込ませる必要がある。下方向は[[Descent]]と呼ばれる。フォント関連のクラス名は「SKTypeface」でありFont云々という名称ではないため探すのに一苦労するかもしれない。以下はXamarin.Macでの例。<source lang="csharp"> var paint = new SKPaint(); paint.Typeface = SKTypeface.FromFile(Path.Combine(NSBundle.MainBundle.BundlePath, "Contents", "Resources", "ipag.ttf"));</source>
SkiaSharpで文字列を描画する場合の注意点としては、描画位置の指定は左上ではなくbaselineとなっており、
より正確に描画時の「高さ」を算出するにはBaselineにAscentからDescentまでを加えた高さを使う。
Ascentとはタイポグラフィ用語のひとつで、アルファベット大文字の高さ(Cap Height)に加え、文字の「跳ね」を考慮した高さのことである。
下方向はDescentと呼ばれる。
[[ファイル:Typography Line Terms.png|none]]
 Skiaをはじめとした多くの画像処理ライブラリで文字列を描画する場合、描画位置の指定はbaselineとなっており、より正確に描画位置を把握するにはAscentからDescentまでが全体の高さを使うとよい。== 実装例 ==
<source lang="csharp">
SKBitmap bitmap = new SKBitmap(512, 512, isOpaque: false);
}
</source>
 
== 関連項目 ==
* [[MonoGameでSkiaSharpを使う]]
[[category: SkiaSharp]]
匿名利用者

案内メニュー