BMP文件操作

该代码实现了一套BMP文件的读写和操作功能,包括读取图像的位图数据、宽、高及每像素位数,保存BMP图像,创建空白BMP图像,全色填充,设置和获取像素点,以及填充矩形和边框。
摘要由CSDN通过智能技术生成
/*
Auto folder version	[1]
Name				[bmp.cpp]
Branch				[通用图像处理]
File type			[cpp]
Direction			[bmp文件相关操作]
*/

#include "stdafx.h"

//注:原点在左下角

//读图像的位图数据、宽、高及每像素位数等数据进内存,存放在相应的变量中
bool readBmp(const char *bmpName, BMPOBJ &bmpobj)
{
	FILE *fp;
	fopen_s(&fp,bmpName, "rb");//二进制读方式打开指定的图像文件
	if (fp == 0) return false;
	fseek(fp, sizeof(BITMAPFILEHEADER), 0);//跳过位图文件头结构BITMAPFILEHEADER
	BITMAPINFOHEADER head;  //位图信息结构体变量
	fread(&head, sizeof(BITMAPINFOHEADER), 1, fp); //获取图像宽、高、每像素所占位数等信息
	bmpobj.width = head.biWidth;
	bmpobj.height = head.biHeight;
	bmpobj.biBitCount = head.biBitCount;
	//定义变量,计算图像每行像素所占的字节数(必须是4的倍数)
	int lineByte = (bmpobj.width * bmpobj.biBitCount / 8 + 3) / 4 * 4; //注意这里一行四字节对齐
	bmpobj.lineByte = lineByte;
	bmpobj.data = new unsigned char[bmpobj.lineByte * bmpobj.height]; //分配内存
	fread(bmpobj.data, 1, bmpobj.lineByte * bmpobj.height, fp);/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值