?? bmp.c
字號:
#include "uCFS.h"
#include "gui.h"
#include "bmp.h"
#include "uC_Lib.h"
#include "key.h"
BITMAPFILEHEADER BitmapFileHeader;
BITMAPINFO BitmapInfo;
void BMP(char *name)
{
unsigned char buffer[3*320];
FS_FILE *bmpFile;
unsigned short dst1,*dest;
unsigned short r1,g1,b1;
long i,h;
GUI_Clear();
GUI_SetFont(&GUI_Font16B_ASCII);
uC_memset( &BitmapFileHeader, 0x00, sizeof(BitmapFileHeader) );
uC_memset( &BitmapInfo, 0x00, sizeof(BitmapInfo) );
bmpFile = FS_FOpen(name, "r");
if(!bmpFile)
{
GUI_DispStringAt("Can not open bmp", 20, 20);
return;
}
/* GUI_DispStringAt("open bmp OK", 20, 20);
FS_FRead(buffer,1,320, bmpFile);
uC_memcpy( &BitmapInfo, &buffer[14], sizeof(BITMAPINFO) );
GUI_DispDecAt( BitmapInfo.bmiHeader.biWidth, 20, 80, 4);
GUI_DispDecAt( BitmapInfo.bmiHeader.biHeight, 20, 100, 4 );
uC_memcpy( &BitmapFileHeader, buffer, sizeof(BITMAPFILEHEADER) );
if( BitmapFileHeader.bfType == 0x4d42 )
GUI_DispStringAt( "BM", 20, 40);
else
GUI_DispStringAt( "Other type", 20, 40);
GUI_DispHex(BitmapFileHeader.bfType, 4);
GUI_DispHexAt( BitmapFileHeader.bfSize, 20, 60, 8 );
*/
for( h=239; h>=0; h-- )
{
dest = (unsigned short *)(0x30C00000 + h*320*2); //short type
FS_FRead(buffer,1,3*320, bmpFile);
for( i=0; i<3*320; )
{
b1 = buffer[i++];
g1 = buffer[i++];
r1 = buffer[i++];
r1 = ((r1>>3)&0x001f);
g1 = ((g1<<3)&0x07e0);
b1 = ((b1<<8)&0xf800);
dst1 = r1|g1|b1;
// *dest++ = ~dst1;
*dest++ = dst1;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -