1

正確な背景色は既知です。

緑の背景にアンチエイリアスフォントを想像してみてください。次に、画像の背景色を赤に変更します。

だから..ピクセルから色の「非背景」部分を抽出し、後で別のbg色の上に追加(または「ブレンド」)するにはどうすればよいですか?

フォントの色もわかっているので、どのピクセルが完全に不透明であるかがわかります。

4

1 に答える 1

2

画像のすべてのピクセルは、背景色、フォント色、またはその2つのブレンドのいずれかです。したがって、画像全体を背景RGB値、フォントRGB値、および0〜1の値の配列で指定できます。たとえば、0はピクセルが背景色であることを意味し、1はピクセルがフォント色であることを意味します。0.1のような値は、ピクセルがほとんど背景色であり、フォントの色が少しあることなどを意味します。

次のような表現:

blend_value = ((pixel.R - bg.R) / (font.R - bg.R)
              + (pixel.G - bg.G) / (font.G - bg.G)
              + (pixel.B - bg.B) / (font.B - bg.B)) / 3

画像内の任意のピクセルに対してこれらの値を提供します。新しい背景色を使用して新しいRGB値を作成するには、この値を使用してフォントの色を新しい背景色とブレンドします。

new_pixel.R = blend_value * font.R + (1 - blend_value) * new_bg.R
new_pixel.G = blend_value * font.G + (1 - blend_value) * new_bg.G
new_pixel.B = blend_value * font.B + (1 - blend_value) * new_bg.B
于 2009-09-10T17:02:54.877 に答える