当前位置: 代码迷 >> VC/MFC >> MFC 字符串数据块转换成BMP图片,该怎么处理
  详细解决方案

MFC 字符串数据块转换成BMP图片,该怎么处理

热度:136   发布时间:2016-05-02 03:47:51.0
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里面,怎样才能转换成图片
#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;
}
  相关解决方案