为了提高画图速度,在代码中用DrawDIBDraw代替了StretchBlt,产生了镜面的翻转问题:
/ /镜面的翻转
bool CZdsc::Reverse(int nWidth,int nHeight,unsigned char *pImageData)
{
int nDeep = 3; //一个像素点代表的字节数
char buf[4];
int nLen;
int nRevLen;
UCHAR *lpData = pImageData;
for(int cy=0; cy<nHeight;cy++ )
{
for (int cx = 0; cx <nWidth/2; cx++)
{
nLen = (cy*nWidth + cx)*nDeep;
nRevLen = ((cy+1)*nWidth -cx)*nDeep;
memcpy(buf,lpData+nLen,nDeep);
memcpy(lpData+nLen,lpData+nRevLen,nDeep);
memcpy(lpData+nRevLen,buf,nDeep);
}
}
return true;
}