利用C的BMP图像的读取、保存及旋转的实现

本文详细介绍了如何使用C语言来读取、保存BMP图像,并探讨了实现图像旋转的算法和步骤,为图像处理提供基础操作。
摘要由CSDN通过智能技术生成
<img src="https://img-blog.csdn.net/20150919152225406?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />//                 "bmp.h" 
#ifndef BMP_H_
#define BMP_H_

typedef unsigned char BYTE;           //1个字节
typedef unsigned short WORD;       //2个字节
typedef unsigned int DWORD;        //4个字节(无符号)
typedef long LONG;                        //4个字节

#pragma pack(2)                            //设定为2字节对齐方式
typedef struct
{
	WORD bfType;
	DWORD bfSize;
	WORD bfReserved1;
	WORD bfReserved2;
	DWORD bfOffBits;
}BITMAPFILEHEADER;                    //文件头
#pragma pack(pop)

typedef struct
{
	DWORD biSize;
	LONG biWidth;
	LONG biHeight;
	WORD biPlanes;
	WORD biBitCount;
	DWORD biCompression;
	DWORD biSizeImage;
	LONG biXPelsPerMeter;
	LONG biYPelsPerMeter;
	DWORD biClrUsed;
	DWORD biClrImportant;
}BITMAPINFOHEADER;                  //文件信息头

typedef struct
{
	BYTE rgbBlue;
	BYTE rgbGreen;
	BYTE rgbRed;
	BYTE rgbReserved;
}RGBQUAD;                                    //调色板结构

typedef struct
{
	unsigned char* buf;
	int width_x;
	int height_y;
	RGBQUAD* palette;
	int deepth;
}Bmpbase;

bool saveBmp(char*, unsigned char*, int, int, int, RGBQUAD*);
Bmpbase readbmp(char*);
Bmpbase imrotate(unsigned char*, int, int, int, RGBQUAD*,double);

#endif
</pre><pre name="code" class="cpp">
//                       "readbmp.cpp"
#include"bmp.h"
#include<iostream>
using namespace std;

//unsigned char* pBmpBuf;                        //读入图像数据的指针
//int bmpWidth;                           
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值