|
以下是我写的一个16位色Alpha50%混合的一个函数,RGB色彩分离都正常,但混合在一起图像就不正常了,请高手看看有什么地方不对!
BOOL Alpha(BYTE * Src,BYTE * Dec,int c1,int c2)
{
byte s;
byte r,r1,r2,g,g1,g2,b,b1,b2;
for (int y=0;y<188;y++)
{
for (int x=0;x<1000;x+=2)
{
s=Src[x];
b1=s&31;
g1=s>>5;
s=Src[x+1];
g1=g1|(s<<5>>2);
r1=s>>3;
s=Dec[x];
b2=s&31;
g2=s>>5;
s=Dec[x+1];
g2=g2|(s<<5>>2);
r2=s>>3;
r=(r1+r2)>>1;
g=(g1+g2)>>1;
b=(b1+b2)>>1;
s=(g<<5)|b;
Dec[x]=s;
s=(r<<3)|(g>>3);
Dec[x+1]=s;
}
Src+=c1;
Dec+=c2;
}
return TRUE;
}
|
|