亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bmp.c

?? MzT24-2模塊驅(qū)動例程(Keil LPC22XX)320*240TFT液晶屏驅(qū)動程序
?? C
字號:
//========================================================================
// 文件名: BMP.c
// 作  者: Xinqiang Zhang(email: xinqiang@mzdesign.com.cn)
// 日  期: 2008/01/15
// 描  述: BMP文件解碼顯示程序
//
// 參  考: 本程序直接從存儲的BMP文件當中讀取數(shù)據(jù)進行分析顯示
// 版  本:
//      2008/01/15      First version    Mz Design
//========================================================================
#include "BMP.h"
#include "LCD_Dis.h"
#include "LCD_Extend.h"
#include "string.h"
#include "stdlib.h"

unsigned char bit[8]={128, 64, 32, 16, 8, 4, 2, 1};//,0x8000,0x4000,0x2000,0x1000,0x0800,0x0400,0x0200,0x0100};

BITMAPFILEHEADER bmfHeader;
BITMAPINFOHEADER bmiHeader;
//========================================================================
// 函數(shù): void Get_Color_Table(US_COLORS * Colors_s, unsigned int nColors, RGBQUAD *fp_s)
// 描述: 從BMP的RGB顏色表中提取出用戶實際LCD所適用的色表
// 參數(shù): Colors_s	保存顏色表的緩存區(qū)
//		 nColors  	顏色表的色彩數(shù)
//		 *fp_s		BMP文件的色表首址  
// 返回: 無
// 備注: 
// 版本:
//      2008/01/15      First version
//========================================================================
void Get_Color_Table(US_COLORS * Colors_s, unsigned int nColors, RGBQUAD *fp_s)
{
	unsigned int i;
	unsigned int uiTemp,uiTemp2;
	RGBQUAD bmiColor;
	for(i=0;i<nColors;i++)
	{
		bmiColor = *fp_s++;
		uiTemp = bmiColor.rgbRed;
		uiTemp = (uiTemp<<8)&0xf800;
		uiTemp2 = bmiColor.rgbGreen;
		uiTemp2 = (uiTemp2<<3)&0x07e0;
		uiTemp |= uiTemp2;
		uiTemp2 = bmiColor.rgbBlue;
		uiTemp2 = (uiTemp2>>3)&0x001f;
		uiTemp |= uiTemp2;
		(*Colors_s++) = uiTemp;
	}
}
//========================================================================
// 函數(shù): unsigned char Get_Byte_bmpf(unsigned char *ptr,unsigned int index)
// 描述: 從BMP文件中讀取一個byte數(shù)據(jù)
// 參數(shù): *ptr	BMP文件首址
//		 index	偏移地址 
// 返回: 無
// 備注: 
// 版本:
//      2008/01/15      First version
//========================================================================
unsigned char Get_Byte_bmpf(unsigned char *ptr,unsigned int index)
{
	unsigned char uiTemp;
	uiTemp = *(ptr+(index));
	//if(index&0x01) uiTemp>>=8;
	return uiTemp;
}
//========================================================================
// 函數(shù): unsigned int Bytes_Line(void)
// 描述: 計算一行所需字節(jié)數(shù)
// 參數(shù): 無
// 返回: 無
// 備注: 
// 版本:
//      2008/01/15      First version
//========================================================================
unsigned int Bytes_Line(void)
{
    unsigned int n;
    n=bmiHeader.biWidth*bmiHeader.biBitCount;
    n = ((n+31)>>5)<<2;
    return n;
}
//========================================================================
// 函數(shù): void BMP_Show(unsigned int left, unsigned int top, 
//						unsigned char * bitmap, unsigned char stretch)
// 描述: 解碼顯示BMP文件
// 參數(shù): left	左上角橫坐標
//		 top	左上角縱坐標
//		 * bitmap	BMP文件首址
//		 stretch	顯示放大倍數(shù)
// 返回: 無
// 備注: 
// 版本:
//      2008/01/15      First version
//========================================================================
void BMP_Show(unsigned int left, unsigned int top, unsigned char * bitmap, unsigned char stretch)
{
	unsigned int nColors=1;
    unsigned int i,m,j,n;
    unsigned int bytes_line;
	unsigned int bmp_height_y,bmp_width_x;
	unsigned short usTemp=0;
	US_COLORS * Colors_User;

 	bmfHeader = *(BITMAPFILEHEADER *)bitmap;
  	bitmap = bitmap+sizeof(BITMAPFILEHEADER);
	bmiHeader = *(BITMAPINFOHEADER *)bitmap;	//獲取文件類型,即從文件頭
	bitmap = bitmap+sizeof(BITMAPINFOHEADER);
	if(bmiHeader.biCompress==0&&bmiHeader.biBitCount<=8)
	{
		nColors<<=bmiHeader.biBitCount;
		if(nColors>256) nColors = 256;
   	 	Colors_User=malloc(nColors * sizeof(US_COLORS));
    	Get_Color_Table(Colors_User, nColors, (RGBQUAD *)bitmap);
	    bitmap += nColors*sizeof(RGBQUAD);
    }
    bytes_line =  Bytes_Line();				//計算每行點需要的字節(jié)數(shù)
    bitmap = bitmap+bytes_line*(bmiHeader.biHeight-1);
    
	//設(shè)置操作窗口的X軸開始列
	bmp_height_y = top+bmiHeader.biHeight*stretch-1;
	bmp_width_x = left+bmiHeader.biWidth*stretch-1;
	if(bmp_height_y>Dis_Y_MAX) bmp_height_y = Dis_Y_MAX;
	if(bmp_width_x>Dis_X_MAX) bmp_width_x = Dis_X_MAX;
	SetWindow(left,top,bmp_width_x,bmp_height_y);
	bmp_height_y = (bmp_height_y-top+1)/stretch;
	bmp_width_x = (bmp_width_x-left+1)/stretch;	 
	if(bmiHeader.biCompress==0)
	{
		switch(bmiHeader.biBitCount)
		{
			case 1:
				for(m=0;m<bmp_height_y;m++)
				{
					for(n=0;n<stretch;n++){
					for(i=0;i<bmp_width_x*8;i++)
					{
               	 		if((bitmap[(i>>3)]&bit[i&0x07])!=0)
               	 		{
               	 			for(j=0;j<stretch;j++) //WriteData(Colors_User[1].v[1],Colors_User[1].v[0]);
							LCD_DataWrite(Colors_User[1]);
               	 		}
               	 		else for(j=0;j<stretch;j++) //WriteData(Colors_User[0].v[1],Colors_User[0].v[0]);
							LCD_DataWrite(Colors_User[0]);
					}}
					bitmap = bitmap-(bytes_line);
				}
				free(Colors_User);
				break;
			case 4:
				for(m=0;m<bmp_height_y;m++)
				{
					for(n=0;n<stretch;n++){
       				for(i=0; i<bmp_width_x; i+=2) 
       				{
       					for(j=0;j<stretch;j++)
							LCD_DataWrite(Colors_User[(bitmap[i>>3]>>4)%0x0f]);
       					for(j=0;j<stretch;j++)
							LCD_DataWrite(Colors_User[(bitmap[i>>3])%0x0f]);
       				}}
       				bitmap = bitmap-(bytes_line);
				}
				free(Colors_User);
				break;
			case 8:	
    			for(m=0;m<bmp_height_y;m++)
				{
					for(n=0;n<stretch;n++){
    				for(i=0; i<bmp_width_x; i++)
    				{
    					for(j=0;j<stretch;j++)
						{LCD_DataWrite(Colors_User[bitmap[i]]);}
    			    }}
        			bitmap = bitmap-(bytes_line);
				}
				free(Colors_User);
				break;
			case 24:
				bmp_width_x = bmp_width_x*3;
				for(m=0;m<bmp_height_y;m++)
				{
					for(n=0;n<stretch;n++){
    				for(i=0; i<bmp_width_x; i+=3)
    				{
    					for(j=0;j<stretch;j++)
						{
							usTemp = ((unsigned short)(bitmap[i+2])<<8)&0xf800;
							usTemp |= (((unsigned short)(bitmap[i+1])<<3)&0x07e0);
							usTemp |= ((unsigned short)bitmap[i]>>3)&0x001f;
							LCD_DataWrite(usTemp);
						}
    			    }}
        			bitmap = bitmap-(bytes_line);
				}
				break;
		}
	}	
	EndWindow();   
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品丝袜中出| av亚洲精华国产精华精华| 欧美性xxxxxxxx| 亚洲欧美日韩一区二区三区在线观看| 国产99一区视频免费| 26uuu久久天堂性欧美| 国产91精品精华液一区二区三区 | 久久久久国产精品麻豆| 国产精品中文字幕日韩精品| 欧美激情综合五月色丁香小说| 国产一区二区精品久久91| 国产日韩欧美一区二区三区综合| 高清国产一区二区三区| 中文字幕综合网| 欧美视频日韩视频在线观看| 琪琪一区二区三区| 久久蜜桃av一区二区天堂| 成人精品免费看| 亚洲精品成人在线| 欧美一级夜夜爽| 国产精品18久久久久久vr| 中文字幕日韩av资源站| 欧美疯狂性受xxxxx喷水图片| 久久99久久99小草精品免视看| 久久久精品中文字幕麻豆发布| 99久久国产综合色|国产精品| 亚洲成人激情自拍| 久久美女高清视频| 在线精品视频一区二区三四| 免费的国产精品| 中文字幕一区二区三区色视频| 欧美午夜电影一区| 国产精品12区| 亚洲国产精品麻豆| 日本一区二区三区在线不卡| 欧美亚洲国产一卡| 国产成人免费网站| 亚洲一区国产视频| 国产日产精品1区| 欧美日韩国产一级二级| 国产成人免费高清| 日韩国产在线一| 最新成人av在线| 日韩女同互慰一区二区| 91美女蜜桃在线| 久久99精品国产.久久久久久| 亚洲乱码中文字幕| 久久综合丝袜日本网| 欧美日韩国产另类不卡| 成人97人人超碰人人99| 久久99精品国产麻豆婷婷| 一区二区三区日韩欧美精品| 久久精品人人爽人人爽| 5月丁香婷婷综合| 91在线免费播放| 国产精品综合久久| 蜜臀久久99精品久久久画质超高清| 亚洲欧洲制服丝袜| 亚洲国产岛国毛片在线| 精品欧美一区二区三区精品久久| 欧美午夜精品久久久| 99久久精品国产麻豆演员表| 国产麻豆视频一区| 老司机精品视频线观看86| 亚洲第一搞黄网站| 一区二区三区欧美亚洲| 中文在线免费一区三区高中清不卡| 日韩欧美色综合| 正在播放一区二区| 欧美日韩久久久久久| 欧美综合一区二区三区| 色婷婷久久久综合中文字幕| av动漫一区二区| 成人亚洲一区二区一| 国产不卡视频在线观看| 国产乱妇无码大片在线观看| 国模无码大尺度一区二区三区| 久热成人在线视频| 另类小说色综合网站| 久久99蜜桃精品| 久久99国产精品久久99果冻传媒| 美腿丝袜一区二区三区| 蜜桃视频一区二区三区在线观看| 免费观看日韩av| 麻豆专区一区二区三区四区五区| 蜜桃视频一区二区| 久草在线在线精品观看| 国产精一品亚洲二区在线视频| 国产一区二区福利| 国产成人在线视频免费播放| 国产激情精品久久久第一区二区| 国产精品亚洲午夜一区二区三区| 国产91综合网| 91麻豆免费看| 欧美日韩一本到| 日韩天堂在线观看| 国产亚洲欧洲997久久综合| 欧美激情在线看| 亚洲美女区一区| 亚洲一区二区三区视频在线 | 国产一区欧美日韩| 成人免费视频一区| 日本高清成人免费播放| 欧美三级电影精品| 欧美精品在欧美一区二区少妇| 欧美一二三四区在线| 久久久精品影视| 亚洲精品亚洲人成人网在线播放| 亚洲国产欧美日韩另类综合| 美女一区二区视频| 成人黄色在线看| 欧美日韩中文字幕一区| 精品久久国产老人久久综合| 亚洲国产精品av| 亚洲成人动漫精品| 国产麻豆视频一区| 欧美中文一区二区三区| 精品粉嫩超白一线天av| 亚洲精品国产a| 九九九精品视频| 色8久久人人97超碰香蕉987| 精品国产自在久精品国产| 日韩毛片一二三区| 久久国产精品免费| 在线一区二区三区四区| 日韩视频永久免费| 亚洲黄色片在线观看| 狠狠色2019综合网| 欧美视频一区二区三区四区| 久久久精品tv| 天堂影院一区二区| av在线播放不卡| 精品国产精品网麻豆系列| 亚洲影视在线播放| 成人精品视频一区二区三区| 在线成人免费视频| 亚洲丝袜制服诱惑| 国模冰冰炮一区二区| 欧美区在线观看| 亚洲欧美色综合| 国产精品夜夜嗨| 91精品国产丝袜白色高跟鞋| 综合网在线视频| 国产精品一二三在| 欧美xxx久久| 亚洲成人av福利| 色视频成人在线观看免| 国产日韩欧美精品电影三级在线| 亚洲bt欧美bt精品| 91黄色免费版| 中文字幕视频一区| 成人在线视频一区二区| 2017欧美狠狠色| 蜜臀久久久99精品久久久久久| 欧美日韩电影一区| 亚洲综合在线电影| 99v久久综合狠狠综合久久| 国产偷国产偷精品高清尤物 | 青青草国产精品亚洲专区无| 91福利在线免费观看| 国产精品国产三级国产aⅴ中文 | 亚洲国产综合在线| 91丨porny丨中文| 国产精品久久久久久妇女6080| 国产老女人精品毛片久久| 精品少妇一区二区三区| 裸体一区二区三区| 日韩免费观看2025年上映的电影| 视频一区二区国产| 欧美怡红院视频| 亚洲成人激情综合网| 欧美精品 日韩| 日本中文字幕不卡| 日韩女优av电影在线观看| 麻豆freexxxx性91精品| 久久午夜色播影院免费高清| 国产在线国偷精品免费看| 精品国产电影一区二区| 国产一区高清在线| 国产欧美综合色| 99国产精品久久久久久久久久| ...中文天堂在线一区| 色菇凉天天综合网| 亚洲妇女屁股眼交7| 欧美一二三四区在线| 韩国成人福利片在线播放| 国产校园另类小说区| 99视频一区二区| 亚洲无线码一区二区三区| 欧美男生操女生| 精彩视频一区二区| 国产情人综合久久777777| 99re视频这里只有精品| 亚洲国产精品久久人人爱蜜臀 | 91麻豆精品国产91久久久更新时间| 日本不卡视频在线| 国产视频911| 欧美在线视频你懂得| 免费成人在线影院| 国产精品高清亚洲|