C语言bmp图片读取写入

一、介绍
bmp是我们常用的一种图片格式,这里用c语言写一个程序打开,读取像素点然后增亮
增亮公式 y = kx + b
这里用的24位的真彩bmp图片

二、实现

img_bmp.c

#include <stdio.h>
#include <stdlib.h>

// bmp图片头大小 24位深度的 
#define BMP_HEADER_SIZE 54

void read_bmp (const char* filename, unsigned int** img_data, int *height, int *width) 
{
   
   
	FILE *fp;
	int i,j;
	
	printf("打开图片...\n");
	if ((fp=fopen(filename,"rb"))==NULL) 
	{
   
   
    	printf("打开bmp失败\n", filename);
    	exit(1);
	}
	printf("跳过18字节...\n");
	for (i=0; i<18; i++) fgetc(fp); 
	
	printf("读取宽度和高度...\n");
	fread(width, sizeof(int), 1, fp);
	fread(height, sizeof(int), 1, fp);
	if ((*height) < 0 || (*width) < 0) 
	{
   
   
	    printf("不支持该格式 高度 %d, 宽度 %d\n", (*height), (*width));
	    exit(1);
	}
	printf("读取图片大小宽度 %d  高度 %d \n", (*width), (*height));
  	*img_data = (unsigned int*) malloc((*width) * (*height) * sizeof(unsigned int));
	printf("跳过28字节...\n");
	for (i=0; i<28; i++) fgetc(fp);
	
	//每行必须有4的倍数 
	int padding = (4-(((*width)*3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值