MFC 字符串数据块转换成BMP图片,该怎么处理
MFC 字符串数据块转换成BMP图片
char buf [512000]
//读取结果
viScanf (vi, "%t\n", &buf);
m_receive = buf;//m_receice为编辑框变成员变量
编辑框返回一个确定长度的二进制数据块,该数据块包含图像,且以#开头,
如#9000230456BM6\x84\x03\x00......,其中,“#”后的“9”表示“9”后面的 9个字符
(000230456)用来表示数据长度。
数据都放在了buf里面,怎样才能转换成图片
------解决思路----------------------
char buf [512000]
//读取结果
viScanf (vi, "%t\n", &buf);
m_receive = buf;//m_receice为编辑框变成员变量
编辑框返回一个确定长度的二进制数据块,该数据块包含图像,且以#开头,
如#9000230456BM6\x84\x03\x00......,其中,“#”后的“9”表示“9”后面的 9个字符
(000230456)用来表示数据长度。
数据都放在了buf里面,怎样才能转换成图片
------解决思路----------------------
//char buf [512000]
//读取结果
//viScanf (vi, "%t\n", &buf);
//m_receive = buf;//m_receice为编辑框变成员变量
//编辑框返回一个确定长度的二进制数据块,该数据块包含图像,且以#开头,
//如#9000230456BM6\x84\x03\x00......,其中,“#”后的“9”表示“9”后面的 9个字符
//(000230456)用来表示数据长度。
//数据都放在了buf里面,怎样才能转换成图片
#include <stdio.h>
char buf[512000]="#9000230456BM6\x84\x03\x00...";
char c;
FILE *f;
int L,len;
int main() {
if (1!=sscanf(buf,"#%1d",&L)) {
printf("buf format error!\n");
return 1;
}
c=buf[2+L];buf[2+L]=0;
if (1!=sscanf(buf+2,"%d",&len)) {
printf("buf format error!\n");
return 2;
}
if (len<32) {
printf("buf format error!\n");
return 3;
}
f=fopen("buf.bmp","wb");
if (NULL==f) {
printf("create file buf.bmp error!\n");
return 4;
}
buf[2+L]=c;
fwrite(buf+2+L,len,1,f);
fclose(f);
printf("save to buf.bmp OK.\n");
return 0;
}