Skip to main content

Module font_gamma

Module font_gamma 

Source
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)を補正する。