📄 vector.h
字号:
ase TYPE_FLOAT:
pImgComData=new CImgComDataFloat(nComBits,nComNumber,coordImgComOrg,dwImgComWidth,dwImgComHeight);
break;
default:
{
printf("image component data type unknown!\n");
return 0;
}
}
pImgSrc->SetImgComData(nComNumber,pImgComData);
for (nTileNumber=0;nTileNumber<nTileNums;nTileNumber++)
{
pTileComData=&m_pImgTilingData[nTileNumber].GetTileComData(nComNumber);
ConvertTileComData(*pTileComData,eDataType);
nTCWidth=pTileComData->GetWidth();
nTCHeight=pTileComData->GetHeight();
nTCOffset=pTileComData->GetTileComOffset();
pDataBlk=pTileComData->GetData();
if (!pbCompSigned[nComNumber])
{
nDCShift=(1<<(pnCompBits[nComNumber]-1));
IDCShift(pTileComData->GetTileComData(),nDCShift);
}
pImgComData->SetDataCopy(pDataBlk,nTCOffset,nTCWidth,nTCHeight);
}
}
return pImgSrc;
}
void CTiler::DCShift(CDataBlk *pDataBlk,int nShift)
{
int nWidth,nHeight;
nWidth=pDataBlk->GetBlkWidth();
nHeight=pDataBlk->GetBlkHeight();
int *pData=(int *)pDataBlk->GetData();
int i,j;
for (i=0;i<nHeight;i++)
for (j=0;j<nWidth;j++)
{
pData[i*nWidth+j]-=nShift;
}
}
void CTiler::IDCShift(CDataBlk *pDataBlk, int nShift)
{
int nWidth,nHeight;
nWidth=pDataBlk->GetBlkWidth();
nHeight=pDataBlk->GetBlkHeight();
int *pData=(int *)pDataBlk->GetData();
int i,j;
for (i=0;i<nHeight;i++)
for (j=0;j<nWidth;j++)
{
pData[i*nWidth+j]+=nShift;
}
}