如何取得適合自己屏幕大小的圖片?
在你所學(xué)的arm開發(fā)板中,我用的是fm3(富士通mb9b系列的),如果例程中顯示圖片是用for(i=0;i
本文引用地址:http://m.butianyuan.cn/article/201611/322270.htm{
Write_data(tupian[i];)
}
我們都知道顏色是以雙字節(jié)來定義的,比如說0x0000表示black;
如果你的例程中并不是write_data(高,低);(我記得stm32系列就是這么寫的)。那么上邊的i就要求用0xxxxx這種雙字節(jié)的數(shù)組來表示。不用再改總線,還要將數(shù)組移位,本人認(rèn)為如果例程不是你寫的就別來回改了,沒必要,
先來看看我的例程,如下
#define black 0x0000
#define blue 0x001F
#define green 0x07E0
#define cyan 0x07FF
#define red 0xF800
#define yellow 0xFFE0
#define white 0xFFFF
#define LCD_WIDTH 240
#define LCD_HEIGHT 320
**************************************************************************
void DrawPicture(uint xs,uint xe,uint ys,uint ye)
{
unsigned long int i;
SetWindow(xs, xe, ys, ye);
SetWindow_xy(xs,ys);
write_command(0x0022);
for (i=0;i<(xe*ye);i++)
{
write_data(qq[i]);
// ili9320_Delay(50);
}
//Set_Cs;
}
void write_command(uint16_t cmd)
{
LCD_RS = 0;
*(LCD_BASE) = cmd;
}
//-------------------------LCD write data -------------------------
void write_data(uint16_t data)
{
LCD_RS = 1;
__no_operation();
__no_operation();
//*(LCD_BASE) =(uint8_t)data;
//*(LCD_BASE) =(uint8_t)data<<8;
*(LCD_BASE) =data;
}
int32_t main(void)
{
FM3_GPIO->PFR4 = 0x0000; // Poart4 for gpio
FM3_GPIO->PDOR4 = 0x003C; // P42-P45 output 1
FM3_GPIO->DDR4 = 0x003C; // P42-P45: LED1-LED4, output;
// P40,P41,P48:key2,key3,key4, input
FM3_GPIO->PFR7 = 0x0000; // Poart7 for gpio
FM3_GPIO->DDR7 = 0x0008; // P73, output;
FM3_GPIO->PFR6 = 0x0000; // Poart6 for gpio
FM3_GPIO->DDR6 = 0x0024; // P64:key1, input; P65 LCD back light, output
// P62, LCD RS select,output
init_extbus(); // 初始化外部總線
delay(10);
LCD_BKLIGHT = 1;
delay(5);
TM280_HX8347G_Initial_code(); //初始化LCD屏,清成白色
delay(10);
clr_lcd();
DrawPicture(0,239,0,319); //x軸的起、末:Y軸的起末
像以上按著我的例程來說,在屏幕上顯示圖片時(shí)問題就出現(xiàn)了,如果直接用image2lcd很遺憾的告訴您,它生成的圖片數(shù)組是單字節(jié)的(0xxx),讓它顯示在屏幕上根本就不行,如果手上有圖片,可是你發(fā)現(xiàn)當(dāng)你用bmp2rgb軟件來轉(zhuǎn)換時(shí)發(fā)現(xiàn)轉(zhuǎn)換完后,數(shù)組里竟是空的,你開始懷疑軟件真爛?試一次還是這樣,換臺(tái)電腦結(jié)果還是一樣。如果你特意找一張24位的bitmap(bmp)圖片,你再用bmp2rgb來轉(zhuǎn)換發(fā)現(xiàn)成功了,并且都是雙字節(jié)數(shù)組,然后開始研究為什么?
其實(shí),在我目前看來,bmp2rgb軟件只能轉(zhuǎn)換24位的bmp格式的數(shù)組并且是單字節(jié),如果我們需要雙字節(jié)的,但手上僅有一個(gè)16位圖的圖片(用bmp2rg打開一開便知。)好了,如果此兩款軟件你同時(shí)擁有,先將此16位的圖片用image2lcd打開如圖
再轉(zhuǎn)換成24位的bmp格式圖,再將生成的圖片用bmp2rgb軟件打開
將寬高設(shè)置為屏幕的大小像素,點(diǎn)convert,ok!大功告成!
評(píng)論