您的位置 首页 设计

怎么获得合适自己屏幕巨细的图片?

如何取得适合自己屏幕大小的图片,本人在搞TFT显示图片时浪费了好多时间,现把经验中总结下来的用法总结如下,供各位道上的学习TFT的参考。

怎么获得合适自己屏幕巨细的图片,自己在搞TFT显现图片时浪费了很多时刻,现把经历中总结下来的用法总结如下,供各位道上的学习TFT的参阅。

在你所学的arm开发板中,我用的是fm3(富士通mb9b系列的),假如例程中显现图片是用for(i=0;i

{

Write_data(tupian[i];)

}

咱们都知道色彩是以双字节来界说的,比如说0x0000表明black;

假如你的例程中并不是write_data(高,低);(我记住stm32系列便是这么写的)。那么上边的i就要求用0xxxxx这种双字节的数组来表明。不必再改总线,还要将数组移位,自己以为假如例程不是你写的就别来回改了,没必要,

先来看看我的例程,如下

#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轴的起末

像以上按着我的例程来说,在屏幕上显现图片时问题就呈现了,假如直接用image2lcd很惋惜的告诉您,它生成的图片数组是单字节的(0xxx),让它显现在屏幕上底子就不可,假如手上有图片,但是你发现当你用bmp2rgb软件来转化时发现转化完后,数组里竟是空的,你开端置疑软件真烂?试一次仍是这样,换台电脑成果仍是相同。假如你特意找一张24位的bitmap(bmp)图片,你再用bmp2rgb来转化发现成功了,而且都是双字节数组,然后开端研讨为什么?

其实,在我现在看来,bmp2rgb软件只能转化24位的bmp格局的数组而且是单字节,假如咱们需求双字节的,但手上仅有一个16位图的图片(用bmp2rg翻开一开便知。)好了,假如此两款软件你一起具有,先将此16位的图片用image2lcd翻开如图

再转化成24位的bmp格局图,再将生成的图片用bmp2rgb软件翻开

将宽高设置为屏幕的巨细像素,点convert,ok!功德圆满!

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/sheji/257129.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部