문제

정확한 배경색이 알려져 있습니다.

녹색 배경에 반응이 좋은 글꼴을 상상해보십시오. 이제 이미지의 배경색을 빨간색으로 변경하려고합니다.

그렇다면 .. 픽셀에서 색상의 "비 백경"부분을 어떻게 추출하고 나중에 다른 BG 색상 위에 (또는 "블렌드") 추가합니까?

우리는 또한 글꼴 색상을 알고 있으므로 어떤 픽셀이 완전히 불투명한지 알고 있습니다.

도움이 되었습니까?

해결책

이미지의 모든 픽셀은 배경색, 글꼴 색상 또는 둘의 혼합입니다. 따라서 배경 RGB 값, 글꼴 RGB 값 및 0과 1 사이의 값 배열로 전체 이미지를 지정할 수 있습니다. 여기서 0, 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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top