//平移变换
void GeometryTrans::Move(int offsetX, int offsetY)
{
if (m_pImgDataOut!=NULL)
{
delete []m_pImgDataOut;
m_pImgDataOut=NULL;
}
m_nBitCountOut=m_nBitCount;
m_nColorTableLengthOut=ComputeColorTableLength(m_nBitCountOut);
if (m_nColorTableLengthOut)
{
m_lpColorTableOut=new RGBQUAD[m_nColorTableLengthOut];
memcpy(m_lpColorTableOut,m_lpColorTable,
sizeof(RGBQUAD)*m_nColorTableLengthOut);
}
m_imgWidthOut=m_imgWidth;
m_imgHeightOut=m_imgHeight;
int lineByte=(m_imgWidth*m_nBitCount/8+3)/4*4;
m_pImgDataOut=new unsigned char[lineByte*m_imgHeight];
memset(m_pImgDataOut, 0, lineByte*m_imgHeight);
int i,j;
int k;
int pixelByte=m_nBitCountOut/8;
for (i=0; i<m_imgHeight; i++)
{
for (j=0; j<m_imgWidth; j++)
{
if (i-offsetY>=0&&i-offsetY<m_imgHeight
&&j-offsetX>=0&&j-offsetX<m_imgWidth)
{
for (k=0; k<pixelByte; k++)
{
*(m_pImgDataOut+lineByte*i+j*pixelByte+k)
=*(m_pImgData+(i-offsetY)*lineByte+(j-offsetX)*pixelByte+k);
}
}
}
}
}void GeometryTrans::Move(int offsetX,