接上篇文章继续滤镜特效。
一、曝光特效:
下面是曝光特效实现代码:
/*************************************************************************
*
* 函数名称:
* Exposal(LPBYTE lpDIBBits, LONG lWidth, LONG lHeight)
*
* 参数:
* lpDIBBits - 原始图像的像素指针
* lWidth - 原始图像的宽度
* lHeight - 原始图像的高度
*
*
* 说明:
* 实现图像的曝光效果。
*
************************************************************************/
BOOL Exposal(LPSTR lpDIBBits, LONG lWidth, LONG lHeight)
{
unsigned char *lpSrc;
LONG i, j, n;
LONG lLineBytes = WIDTHBYTES(lWidth * 24);
int buf1, buf2, buf3;
unsigned char* lpRed;
unsigned char* lpGreen;
unsigned char* lpBlue;
for (i = 0; i < lHeight; i++)
{
for (j = 0; j < lWidth * 3; j += 3)
{
lpRed = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j + 2;//顺序为BGR
lpGreen = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j + 1;
lpBlue = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;
if ((*lpRed) < 128) *lpRed = 255 - *lpRed;
if ((*lpGreen) < 128) *lpGreen = 255 - *lpGreen;
if ((*lpBlue) < 128) *lpBlue = 255 - *lpBlue;
}
}
return TRUE;
}
二、霓虹特效:
下面是霓虹特效实现代码:
/*************************************************************************
*
* 函数名称:
* NeonLight(LPSTR lpDIBBits