Expand description
グリフ被覆率(アルファ)のガンマ・コントラスト補正。
§背景と課題
ディスプレイのガンマ特性(γ ≈ 2.2)により、線形色空間でのアルファブレンド
(C = C_fg * a + C_bg * (1 - a))では、暗い背景に白い文字を描く場合、
被覆率 50%(a=128)の縁ピクセルが知覚的にわずか 22% の明るさに沈んでしまう。
これにより文字の縁が急激に暗く落ち込み、Chrome(Skia)等のガンマ補正エンジンに
比べて文字全体が細く見える「暗背景での細字現象」が発生する。
§解決策
前景色(文字)と背景色の明度差を計算し、文字が背景より明るい場合(白文字 on 暗背景など)に 被覆率(アルファ)を持ち上げるガンマ・コントラスト補正(Parabolic boost)を適用する。 整数演算のみで高速に計算し、浮動小数点や外部ライブラリへの依存を持たない純粋モジュールとする。
Functions§
- correct_
glyph_ coverage - 前景色と背景色の明度差に基づき、グリフ被覆率(アルファ 0..255)を補正する。