19,468
社区成员
发帖
与我相关
我的任务
分享
void CDocumentTestView::OnDraw(CDC* /*pDC*/)
{
CDocumentTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CBitmap BitMapTest;
unsigned char DataBuf[160000]={0};
unsigned char ShowBuf[120000]={0};
FILE *fp=fopen("data.txt","rb+");
int ShowCount=0,DataCount=0;
//txt里面是存着99 00 00 FF连续的数据 大小160000字节
//下面的操作是舍弃99 把读到的B G R数据存到ShowBuf里面去
for (int i=0;i<200;i++)
{
for(int j=0;j<800;j++)
{
if(j%4==0)
{
int temp=getc(fp);
}
else
{
DataBuf[DataCount]=getc(fp);
ShowBuf[ShowCount]=DataBuf[DataCount];
ShowCount++;
DataCount++;
}
}
}
unsigned char EncodeBuf[200*200*3]={0};
//把前面的BGR转换成RGB
for (int k=0;k<200*200;k++)
{
EncodeBuf[k*3]=ShowBuf[k*3+2];
EncodeBuf[k*3+1]=ShowBuf[k*3+1];
EncodeBuf[k*3+2]=ShowBuf[k*3];
}
SetBitmapBits(BitMapTest,200*200*3,EncodeBuf);
CPaintDC dc(this);
CDC pmemDC;
pmemDC.CreateCompatibleDC(&dc);
pmemDC.SelectObject(BitMapTest);
dc.BitBlt(0,0,200,200,&pmemDC,0,0,SRCCOPY);
fclose(fp);
}