一个读图片问题。
我把一张320X240 16位的图片读到一个WORD* 指针里面。然后要分成600次第次发送256个字节的数据。划分时出现了问题。
在红色标记那个个部分。
bool CSerial2Dlg::defReadFile()
{
CFileDialog FileDlg(TRUE,NULL,"*.bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*.bmp",NULL);
if( FileDlg.DoModal()== IDOK)
{
if((filename = FileDlg.GetFileName()) < 2)
{
return FALSE;
}
FILE *fp;
int i=0;
WORD offset ;
if((fp = fopen(filename.GetBuffer(0),"r"))== NULL)
{
AfxMessageBox("open file had failed!");
}
else{
fseek(fp,10,SEEK_SET);
fread(&offset,2,1,fp);
fseek(fp,offset,SEEK_SET);
fread(bmp_buf,2,BMPSIZE/2,fp);
fclose(fp);
}
PackageData();
}
return TRUE;
望高手们指点一二。
}
void CSerial2Dlg::PackageData()
{
int m_index ,m_dataindex;
int temp =0;
for(m_index = 1;m_index < BMPSIZE/DATAOFPER/2 ;m_index++)
{
for (m_dataindex = 0; m_dataindex <256;m_dataindex++)
{
t_data.m_data[m_dataindex] = *(bmp_buf++); temp++;
}
t_data.m_start = 0XAA;
t_data.m_lenght = DATAOFPER;
t_data.m_code = 0X01;
t_data.m_Add = m_index*256;
// SendData ();
}
t_data.m_start = 0XAA;
t_data.m_lenght = DATAOFPER;
t_data.m_code = 0X02;
t_data.m_Add = m_index * 256;
m_dataindex = 0;
while (m_dataindex < 256)
{
t_data.m_data[m_dataindex++];
}
// SendData();
}