📄 datablkint.cpp
字号:
aLength=0;
m_nSkipMSBP=0;
}
CDataBlkByte::~CDataBlkByte()
{
delete []m_pubData;
}
CDataBlkByte::CDataBlkByte(int nBlkWidth, int nBlkHeight)
{
m_pubData=0;
m_pubData=new BYTE [nBlkWidth*nBlkHeight];
memset(m_pubData,0,nBlkWidth*nBlkHeight*sizeof(BYTE));
m_eDataType=TYPE_BYTE;
m_nWidth=nBlkWidth;
m_nHeight=nBlkHeight;
m_nSkipMSBP=0;
}
void * CDataBlkByte::GetData()
{
return m_pubData;
}
void * CDataBlkByte::GetDataCopy(int nWidth, int nHeight)
{
BYTE *pubData=new BYTE[nWidth*nHeight];
memcpy(pubData,m_pubData,nWidth*nHeight*sizeof(BYTE));
return pubData;
}
BYTE * CDataBlkByte::GetDataByte()
{
return m_pubData;
}
void CDataBlkByte::SetData(void *pData)
{
if (m_pubData)
{
delete []m_pubData;
m_pubData=0;
}
m_pubData=(BYTE *)pData;
}
void CDataBlkByte::SetDataCopy(void *pData, int nOffset, int nWidth, int nHeight)
{
if (m_nWidth<nWidth||m_nHeight<nHeight)
{
printf("can contain the data!\n");
exit(0);
}
if (!m_pubData)
{
m_pubData=new BYTE[m_nWidth*m_nHeight];
}
BYTE *pubData=(BYTE *)pData;
BYTE *pcbData=m_pubData+nOffset;
int i;
for (i=0;i<nHeight;i++)
{
memcpy(pcbData,pubData,nWidth*sizeof(BYTE));
pcbData+=m_nWidth;
pubData+=nWidth;
}
}
void CDataBlkByte::SetDataCopy(void *pData, int nOffset, int nWidth, int nHeight, int nDataWidth)
{
BYTE *pubData=(BYTE *)pData;
BYTE *pcbData=pubData+nOffset;
if (m_pubData)
delete []m_pubData;
m_pubData=new BYTE[nWidth*nHeight];
BYTE *m_pcbData=m_pubData;
int i;
for (i=0;i<nHeight;i++)
{
memcpy(m_pcbData,pcbData,nWidth*sizeof(BYTE));
m_pcbData+=nWidth;
pcbData+=nDataWidth;
}
}
void CDataBlkByte::SetSkipMSBP(int nSkipMSBP)
{
m_nSkipMSBP=nSkipMSBP;
}
int CDataBlkByte::GetSkipMSBP()
{
return m_nSkipMSBP;
}
int CDataBlkByte::GetCodedLength()
{
return m_nCodedDataLength;
}
void CDataBlkByte::SetCodedLength(int nCodedLength)
{
m_nCodedDataLength=nCodedLength;
}