hanyeah 专注于AS

c语言保存bmp、png图片

用c语言写算法,想要得到一些可视化的输出,又不想用外部的图形库,或者调用系统的API。

只需要用标准的文件读写函数,就可以创建一个图片。

生成bmp文件:

#include <stdio.h>
#include <stdlib.h>
#define w 200
#define h 200
void WriteBMP(char*img,const char* filename)
{
    int l=(w*3+3)/4*4;
    int bmi[]= {l*h+54,0,54,40,w,h,1|3*8<<16,0,l*h,0,0,100,0};
    FILE *fp = fopen(filename,"wb");
    fprintf(fp,"BM");
    fwrite(&bmi,52,1,fp);
    fwrite(img,1,l*h,fp);
    fclose(fp);
}
int main()
{
    char img[w*h*3];
    for(int i=0; i<w*h*3; i++)img[i]=rand()%256;
    WriteBMP(img,"test.bmp");
    // system("test.bmp");
    return 0;
}

生成png文件:

Milo Yip大神的代码。

地址:http://github.com/miloyip/svpng




2018年10月10日 | 发布:hanyeah | 分类:c/c++ | 评论:0

发表留言: