我现在在做图像合成,用到了alpha图像合成,在网上找到一些这方面的资料,看下面代码,但是我不知道这个最后计算出来的值,最后赋值到那去了 。   计算机公式  newPixeValR=   (pixel1ValR*(255-Alpha)+pixel2ValR*Alpha)/255; 
BOOL   CompoundDIB(HANDLE   hDIB,HANDLE   hDIBSrc,int   alpha)   {   LPVOID   lpvBuf=NULL;   //   目标图象数据指针 
LPVOID   lpvBufSrc=NULL;   //   源图数据指针 //   //   源图象信息   // 
LPBITMAPINFO   lpbmif=(LPBITMAPINFO)hDIBSrc;   LPBITMAPINFOHEADER   lpbmifh=(LPBITMAPINFOHEADER)lpbmif; 
//   计算图象数据偏移量 
UINT   nColors=lpbmifh-> biClrUsed   ?   lpbmifh-> biClrUsed   :   1 < <lpbmifh-> biBitCount;   if   (   nColors   > 256   )   nColors=0;   //   如果颜色数大于256色,则没有调色板 
lpvBufSrc=(LPVOID)((LPBYTE)lpbmif-> bmiColors+nColors*sizeof(RGBQUAD)); 
int   cxSrc=lpbmifh-> biWidth;   //   源图象宽度 
int   cySrc=lpbmifh-> biHeight;   //   源图象高度 
//   计算图象每行的字节数(图象位数   x   图象宽度,如果不能被2整除则在每行后面添加一个0字节) 
int   nBytesPerLineSrc=((cxSrc*lpbmifh-> biBitCount+31)&~31)/8;   //   //   目标图象信息   // 
lpbmif=(LPBITMAPINFO)hDIB; 
lpbmifh=(LPBITMAPINFOHEADER)lpbmif; 
nColors=lpbmifh-> biClrUsed   ?   lpbmifh-> biClrUsed   :   1 < <lpbmifh-> biBitCount;   if   (   nColors   > 256   )   nColors=0;   lpvBuf=(LPVOID)((LPBYTE)lpbmif-> bmiColors+nColors*sizeof(RGBQUAD)); 
int   cx=lpbmifh-> biWidth; 
int   cy=lpbmifh-> biHeight; 
int   nBytesPerLine=((cx*lpbmifh-> biBitCount+31)&~31)/8; LPBYTE   lpbPnt=NULL; 
LPBYTE   lpbPntSrc=NULL; 
//   //   通过alpha值合并两张图象的像素值   // 
//   这里假设是24位真彩色图象,其他深度的图象处理方法可以以次类推 
for   (   int   y=(cy <cySrc   ?   cy   :   cySrc);   y> 0   ;y--   )   {   lpbPnt=(LPBYTE)lpvBuf+nBytesPerLine*(y-1); 
lpbPntSrc=(LPBYTE)lpvBufSrc+nBytesPerLineSrc*(y-1); 
for   (   int   x=0;   x <(cx <cxSrc   ?   cx   :   cxSrc);   x++   )   { 
  for   (   int   i=0   ;i <3   ;i++   )  
   *lpbPnt++=(*lpbPnt*(255-alpha)+*(lpbPntSrc++)*alpha)/255;    //就是这最后算出来得值赋值到那了


return   TRUE; 
}