📄 gui_bmp.c
字号:
/****************************************************************************************
* 文件名:GUI_BMP.C
* 功能:位图显示。
* 作者:LYP
* 日期:2009.3.30
* 备注:
************************************************************************************/
#include "config.h"
#if (GUI_WINDOW_EN==1)|(GUI_MenuIco_EN==1)|(GUI_MenuDown_EN==1)|(GUI_LoadPic_EN==1)
extern uint16 GUI_Color2Index_565(uint32 colorRGB);
/****************************************************************************
* 名称:LoadBitmapFromMem()
* 功能:装载BMP文件。
* 入口参数:
* 出口参数:无
* 说明:
****************************************************************************/
void LoadBitmapFromMem (PBITMAP bmp, const uint8* mem, uint32 size)
{
uint8 PosPixel;
bmp->bmType=mem[0]+(mem[1]<<8);//判断图像类型
bmp->bmBitsPerPixel=mem[28];//每个像素的位数
if(bmp->bmBitsPerPixel%8==0) //每个像素的BYTE
bmp->bmBytesPerPixel=bmp->bmBitsPerPixel/8;
else
bmp->bmBytesPerPixel=bmp->bmBitsPerPixel/8+1;
bmp->bmWidth=mem[18]+(mem[19]<<8)+(mem[20]<<16)+(mem[21]<<24);//像素宽度
bmp->bmHeight=mem[22]+(mem[23]<<8)+(mem[24]<<16)+(mem[25]<<24);/* 像素高度,正:由下向上,负:由上至下 */
PosPixel=mem[10];
bmp->bmBits=(uint8 *)mem+PosPixel;//像素矩阵的基指针
bmp->bmPitch=size;//位图文件大小
}
/****************************************************************************
* 名称:FillBoxWithBitmap()
* 功能:显示BMP文件。
* 入口参数:
* 出口参数:无
* 说明:
****************************************************************************/
int FillBoxWithBitmap (int x, int y, BITMAP* pBitmap)
{ uint32 RGB_dat;
uint8 i, j,*bmBitsBuf;
TCOLOR bakc;
if(x>GUI_LCM_XMAX|y>GUI_LCM_YMAX|((pBitmap->bmWidth)+x)>GUI_LCM_XMAX|((pBitmap->bmHeight)+y)>GUI_LCM_YMAX)return(0);//判断显示范围有无溢出
bmBitsBuf = pBitmap->bmBits; //暂存像素指针
for(i=pBitmap->bmHeight;i>0;i--)//从最下面行往上扫描
{
for(j=0;j<pBitmap->bmWidth;j++)//从左向右扫描
{
RGB_dat=((*(pBitmap->bmBits+2)<<16)+(*(pBitmap->bmBits+1)<<8)+(*(pBitmap->bmBits)<<0)); //从BGR像素矩阵获得RGB
pBitmap->bmBits+=3;//指向下一个像素
bakc=GUI_Color2Index_565(RGB_dat);//将24位RGB数据转化为16位索引值
GUI_Point(j+x, i+y, bakc);
}
}
pBitmap->bmBits = bmBitsBuf;//恢复像素指针
return(1);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -