#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
FILE* fp=fopen("./rising.bmp","rb");
fseek(fp,2,SEEK_SET);
int bmp_size=0;
fread(&bmp_size,4,1,fp);
printf("size:%d\n",bmp_size);
int bmp_w=0;
int bmp_h=0;
fseek(fp,18,SEEK_SET);
fread(&bmp_w,4,1,fp);
fread(&bmp_h,4,1,fp);
printf("图像信息:%d * %d\n",bmp_w,bmp_h);
fclose(fp);
fp=fopen("./rising.bmp","rb+");
unsigned char bgr1[3] = {0,0,0};
fseek(fp,54,SEEK_SET);
for(int i=0;i<bmp_w/3;i++)
{
for(int j=0;j<bmp_h;j++)
{
fwrite(bgr1,3,1,fp);
}
}
unsigned char bgr2[3] = {0,0,255};
for(int i=0;i<bmp_w/3;i++)
{
for(int j=0;j<bmp_h;j++)
{
fwrite(bgr2,3,1,fp);
}
}
unsigned char bgr3[3] = {0,255,255};
for(int i=0;i<bmp_w/3;i++)
{
for(int j=0;j<bmp_h;j++)
{
fwrite(bgr3,3,1,fp);
}
}
fclose(fp);
return 0;
}
IOday2
最新推荐文章于 2024-07-25 20:23:43 发布
这篇文章展示了如何使用C语言读取BMP图像文件,通过fseek和fread操作修改图像的红绿蓝(RGB)通道,将特定区域的颜色从黑色变为蓝色和绿色。
摘要由CSDN通过智能技术生成