bmp_info.h

来自「C实现模拟与或非门的逻辑电路」· C头文件 代码 · 共 71 行

H
71
字号
/** 操作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 + =
减小字号Ctrl + -
显示快捷键?