資源描述:
《灰度圖像淡入到彩色圖像與彩色圖像淡出到灰度圖像》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、灰度圖像淡入到彩色圖像與彩色圖像淡出到灰度圖像voidFadeInColorORFadeOutGray(CDC*pDC,HANDLEhDIB,intxDest,intyDest,intnLoops,intnDelay,intnFlag){CPalettepal;CPalette*pOldPalette;PALETTEENTRYpAnimate[256];PALETTEENTRYpGray[256];PALETTEENTRYpOriginal[256];BITMAPINFO&bmInfo=*(LPBITMAPIN
2、FO)hDIB;??intnColors=bmInfo.bmiHeader.biClrUsed?bmInfo.bmiHeader.biClrUsed:1<236?236:nReservedColors;intnWidth=bmInfo.bmiHeader.biWidth;intnHeight=bmInfo.bmiHeader.biHeight;LPVOIDlpDIBBits=(LPVOID)(bmIn
3、fo.bmiColors+nColors);if(pDC->GetDeviceCaps(RASTERCAPS)&RC_PALETTE&&nColors<=256){HPALETTEhPal=Create236Palette(hDIB);pal.Attach(hPal);//μ?μ???í?μ÷é?°?pal.GetPaletteEntries(0,nReservedColors,(LPPALETTEENTRY)&pOriginal);for(inti=0;i4、???é???ó|?ò?è?μintnGray=(pOriginal[i].peRed*299+pOriginal[i].peGreen*587+pOriginal[i].peBlue*114)/1000;pGray[i].peRed=nGray;pGray[i].peGreen=nGray;pGray[i].peBlue=nGray;pGray[i].peFlags=PC_RESERVED;}pOldPalette=pDC->SelectPalette(&pal,FALSE);pDC->RealizePale
5、tte();CDCmemDC;memDC.CreateCompatibleDC(pDC);CBitmapbmp;bmp.CreateCompatibleBitmap(pDC,nWidth,nHeight);CBitmap*pOldBitmap=memDC.SelectObject(&bmp);CPalette*pOldMemPalette=memDC.SelectPalette(&pal,FALSE);memDC.RealizePalette();::SetDIBitsToDevice(memDC.m_hDC,
6、0,0,nWidth,nHeight,0,0,0,nHeight,lpDIBBits,(LPBITMAPINFO)hDIB,DIB_RGB_COLORS);if(nFlag==1)//éè???ò?èμ÷é?°?AnimatePalette(hPal,0,nColors,(LPPALETTEENTRY)&pGray);pDC->BitBlt(xDest,yDest,nWidth,nHeight,&memDC,0,0,SRCCOPY);//éè???ˉì?μ÷é?°?3?ê??μ?aμ±?°μ÷é?°?pal.G
7、etPaletteEntries(0,nColors,(LPPALETTEENTRY)&pAnimate);??memDC.SelectPalette(pOldMemPalette,FALSE);memDC.SelectObject(pOldBitmap);//μè?μ3?for(i=1;i<=nLoops;i++){for(intj=0;j8、al[j].peRed)*i)/nLoops;pAnimate[j].peGreen=pGray[j].peGreen-((pGray[j].peGreen-pOriginal[j].peGreen)*i)/nLoops;pAnimate[j].peBlue=pGray[j].peBlue-((pGray[j].peBlue-pOriginal[j].peBlue)*i)/nLoops