📄 bmp_info.h
字号:
/** 操作BMP图片
@author clayman
@note modified by yaker
*/
#ifndef BMP_H
#define BMP_H
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef int BOOL;
/** 单个点的数据结构 */
typedef struct pixel_color_tag
{
/** 蓝色分量 */
BYTE B;
/** 绿色分量 */
BYTE G;
/** 红色分量 */
BYTE R;
/** Alpha分量 */
BYTE A;
} pixel_color;
/** 位图结构体 */
typedef struct bmp_info_tag
{
/** 从内存中分配的原始内存指针 */
BYTE* raw_buf;
/** 指向图像数据的起始位置的指针 */
pixel_color* data;
/** 图像的宽 */
unsigned int width;
/** 图像的高 */
unsigned int height;
/** 图像数据所占用的空间大小 */
unsigned int byte_size;
} bmp_info;
/** 初始化bmp结构
@retval 1 失败
@retval 0 成功
*/
BOOL bmp_init(bmp_info *bmp);
/** 创建一个大小为width*height的位图
@retval 1 失败
@retval 0 成功
*/
BOOL bmp_create(bmp_info *bmp, unsigned int width, unsigned int height);
/** 读取bmp文件中的图像数据
@param[out] bmp bmp结构体指针
@param[in] file_name 要导入的bmp文件名
@retval 1 失败
@retval 0 成功
*/
BOOL bmp_load_from_file(bmp_info *bmp, char* file_name);
/** 将bmp中保存图像数据以24位bmp格式,保存文件中
@param[in] bmp bmp结构体指针
@param[in] file_name 要保存的bmp文件名
@retval 1 失败
@retval 0 成功
*/
BOOL bmp_save_to_file(bmp_info *bmp, char* file_name);
/** 获得单个像素的指针 */
pixel_color* bmp_get_buffer_at(bmp_info *bmp, int x, int y);
/** 释放bmp中保存图像数据所使用的内存 */
void bmp_destroy(bmp_info *bmp);
#endif // BMP_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -