使用C语言操作bitmap(彩色变灰色,黑白)

  • Post author:
  • Post category:其他


这里有有一篇bitmap基本格式的博客,不再赘述


https://www.cnblogs.com/ZXNblog/p/4046342.html


下面讲述怎么将24为的bitmap图像变成灰色和黑白。

  1. 定义BITMAPFILEHEADER,和BITMAPINFOHEADER,并从原图像获取图像信息

        typedef unsigned char uc;
        BITMAPFILEHEADER fileHeader;//在windows.h文件中有定义 
        BITMAPINFOHEADER infoHeader;//同上 
    
        FILE* f=fopen("1.bmp","rb");
        FILE* f2=fopen("4.bmp","wb");
        fread(&fileHeader,sizeof(BITMAPFILEHEADER),1,f);
        fread(&infoHeader,sizeof(BITMAPINFOHEADER),1,f);
        int height,width;
        width=infoHeader.biWidth;
        height=infoHeader.biHeight;
        uc* r=(uc*)malloc(width*height);//红色矩阵 
        uc* g=(uc*)malloc(width*height);//绿色矩阵 
        uc* b=(uc*)malloc(width*height);//蓝色矩阵 
    
  2. 将图像每个像素的rgb颜色读取到数组中

    void loadImage(FILE* fin,uc* r,uc* g,uc *b,int height,int width){
        //fin文件指针已经过



版权声明:本文为liouyi250原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。