레이어를 지원하는 기본 이미지 편집 도구로 작업 중이며 레이어를 단일 이미지로 병합하는 방법을 알아야합니다. 분명히, 픽셀에 알파 값이 없다면, 둘 중 어떤 것이 먼저 승리 하나, 픽셀에 알파 값이있을 때 무엇을 해야할지 모릅니다. 여기에 질문이 있습니다 : RGBA 값을 사용하여 표현 된 2 개 이상의 픽셀을 감안할 때이 컨텍스트 (레이어)에서 어떻게 하나의 픽셀로 병합합니까? 계층의 각 구성 요소에 대한 TIA이미지 레이어 병합
1
A
답변
2
, 알파 값이 a
(범위 0..1) 인 경우는 해당 구성 요소의 비율 a
+ 아래 무엇의 비율 1-a
를 볼 수 있습니다.
하단 레이어에서 상단 레이어로 작업 해보십시오.
편집 : 당신이 알아야
#define MAX_PIXEL 255
int numLayers; // Number of layers.
Color* layers; // Pointer to the layers.
Color flattened;
flattened.R = 0;
flattened.G = 0;
flattened.B = 0;
flattened.A = MAX_PIXEL;
// Layer 0 is the bottom layer.
for (int i = 0; i < numLayers; i++) {
int alpha;
alpha = layers[i].A;
flattened[i].R = (layers[i].R * alpha + flattened[i].R * (MAX_PIXEL - alpha))/MAX_PIXEL;
flattened[i].G = (layers[i].G * alpha + flattened[i].G * (MAX_PIXEL - alpha))/MAX_PIXEL;
flattened[i].B = (layers[i].B * alpha + flattened[i].B * (MAX_PIXEL - alpha))/MAX_PIXEL;
}
모든 : http://en.wikipedia.org/wiki/Alpha_compositing –