6410 Eboot 显示图片

来源:互联网 发布:ios app制作软件 编辑:程序博客网 时间:2024/06/06 01:35

在Eboot里面显示图片,如果要显示一些非全屏大小的图片,感觉不是很爽,所以封装了几个函数,用于显示图片,或者画图用。

屏幕大小是320*240的,这样的屏幕,画的时候在屏幕的左上角开始往右边画,画完一行,接着画下一行。要显示的图片,需要先转成对应的数组。这里使用的是bmp2c.exe软件。由于,屏幕打竖来放,即变成240*320。这样子的话,做出来的图片需要逆时针旋转90度之后,才能够转换成对应的数组。

下面的函数支持全屏或非全屏的图片或颜色显示


其中的几个关键函数如下:

// 显示图片BOOL ShowPicture(int startX, int startY, int width, int high, const unsigned short *picture){unsigned int *pFB;int i,j;if(startX>320 || startY>240)return FALSE;if(picture == NULL)return FALSE;pFB = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;for(j=0; j<high; j++){for(i=0; i<width; i++){UpDataBitmaptmp4=(int)picture[i+j*width];UpDataBitmaptmp=(((UpDataBitmaptmp4>>11)<<19)|(((UpDataBitmaptmp4>>5)&0x3F)<<10)|((UpDataBitmaptmp4&0x1F)<<3)|0x0);*(pFB+(startY*320+startX)+j*320+i) = UpDataBitmaptmp;}}}// 显示颜色BOOL ShowColor(int startX, int startY, int width, int high, const unsigned short color){unsigned int *pFB;int i,j;if(startX>320 || startY>240)return FALSE;pFB = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;for(j=0; j<high; j++){for(i=0; i<width; i++){UpDataBitmaptmp4=(int)color;UpDataBitmaptmp=(((UpDataBitmaptmp4>>11)<<19)|(((UpDataBitmaptmp4>>5)&0x3F)<<10)|((UpDataBitmaptmp4&0x1F)<<3)|0x0);*(pFB+(startY*320+startX)+j*320+i) = UpDataBitmaptmp;}}}// 清屏void ClearScreen(){unsigned int *pFB;volatile unsigned long i=0;pFB = (unsigned int *)EBOOT_FRAMEBUFFER_UA_START;for(i=0; i<76800; i++){*(pFB+i)=0x00000000;}}


上述函数中的参数说明:

startX  : 图片开始的X坐标(以屏幕为320*240为准)

startY  :  图片开始的Y坐标

width   : 图片的宽度(旋转后的图片宽度)

high     : 图片的高度(旋转后的图片高度)

picture : 图片对应的数组指针

color    : 颜色值。0xFFFF表示白色,0x0000表示黑色


原创粉丝点击