2013-12-12 2 views
0

C#에서 알파 블렌딩을 수행하려고합니다. 그래서이 내 실제 코드는 다음과 같습니다 배경 픽셀이 더 불투명도가없는 경우이 제대로 작동배경 알파가 255/1.0f가 아닌 경우 알파 블렌드

final.Red = (pencil.Red * pencil.Alpha) + (background.Red * (1.0f - pencil.Alpha)); 
final.Green = (pencil.Green * pencil.Alpha) + (background.Green * (1.0f - pencil.Alpha)); 
final.Blue = (pencil.Blue * pencil.Alpha) + (background.Blue * (1.0f - pencil.Alpha)); 

. 그러나 배경 픽셀에 불투명도가있는 경우 색상 계산은 어떻게됩니까?

답변

1

좋아, 직접 관리했습니다. 내가 생각했던 것만 큼 복잡한 것은 아니었다. Heres가 내 솔루션입니다.

final.Red = (pencil.Red * pencil.Alpha) + (background.Red * (1.0f - pencil.Alpha)); 
final.Green = (pencil.Green * pencil.Alpha) + (background.Green * (1.0f - pencil.Alpha)); 
final.Blue = (pencil.Blue * pencil.Alpha) + (background.Blue * (1.0f - pencil.Alpha)); 
final.Alpha = background.Alpha + (1.0f - background.Alpha * pencil.Alpha); 

이 기능을 사용하면 모든 백 그라운 드 불투명도가 적용됩니다.

관련 문제