BMP图像生成 纯C

这篇内容参考了

http://blog.sina.com.cn/s/blog_4ed027020100c7at.html

这里的东西,写得非常清楚,很直接。

 

在我的程序中,生成了迷宫后要显示出来,可以用GUI可以用文本打出来,但都不够直接,因此保存成图片是最直接的方法了。

BMP图片格式简单,用C写最容易生成BMP图像,不需要压缩什么的。

下面就是代码了:
一个数据结构和两个函数 

 

struct color

{

    unsigned char b,g,r;

};


void setBmpHead()

{

    unsigned int size = (width*6)*(height*6)*3+54;

    unsigned short int head[]=

    {

        0x4D42,size%0x10000,size/0x10000,0,0,0x36,0,0x28,

        0,(width*6)%0x10000,(width*6)/0x10000,(height*6)%0x10000,(height*6)/0x10000,0x10,0x18,0,

        0,0,0,0,0,0,0,0,0,0,0

    };

    fwrite(head,1,sizeof(head),bmpFile);

    return;

}

 

void writeBmpData( int a)

{

    struct color bmpColor;

    if ( a > 0 )

    {

        bmpColor.r = 0;

        bmpColor.g = 0;

        bmpColor.b = 0;

    }

    else

    {

        bmpColor.r = 255;

        bmpColor.g = 255;

        bmpColor.b = 255;

    }

    fwrite( &bmpColor,1, sizeof(struct color), bmpFile);

}

 

第一个函数用于设置BMP文件头,由于迷宫每个格子占6px因此要*6 设置颜色就是一个简单的数据结构,由于迷宫只需要黑白,因此第二个函数只需要设置黑白色就可以了,然后直接写入。

就是这么简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值