图片显示,其方法都是先转为.c数组数据,然后显示。
/****************************************************************************************************
GUI图片显示方法示例
文 件:GuiTest.h
****************************************************************************************************/
#ifndef __GUITEST_H
#define __GUITEST_H
void GuiTest(void);
//***************************************************************************************************
#endif
/****************************************************************************************************
GUI图片显示方法示例
文 件:GuiTest.c
在以下操作前,首先要配置好大环境
1 参照 “GUI--移植1--VS2008_模拟1788_opengl_最小配置”
配置好需要的最小GUI环境。 或者其他已经配置好gui,有无系统都可以。
2 在工程添加JPEG目录 并添加 ...\GUI\JPEG 下的所有.H.C文件到工程。
3 按照本文以下操作进行,即可轻松搞定图片显示。
总 结:同样的图片JPEG数据占空间33316字节 BMP565数据占480*272*2=261120字节。当然jpeg图片有损。
编 者:张永辉 2012年12月27日
****************************************************************************************************/
#include "GUI.h"
#include "jpeglib.h"
#include "GuiTest.h"
#include "OpenglLcd.h"
//***************************************************************************************************
void GuiJpeg(void);
void GuiBmp(void);
void GuiGlBmp(void);
/***************************************************************************************************/
//测试函数,main调用此函数即可
void GuiTest(void)
{
GUI_Init(); //初始化
GuiJpeg(); //JPEG图片显示
getchar();
GuiBmp(); //bmp图片显示
getchar();
GuiGlBmp(); //使用GL显示BMP图片
getchar();
}
/****************************************************************************************************
GUI显示BMP图片
1 制作图片
1 使用windows或PS一张bmp图像。最好是24位位图,质量要高些。
2 使用uc自带的tool工具 uC-GUI-BitmapConvert 将图片拖入窗口。好处是我们不用关心其格式信息。
3 点击菜单栏 file 另存为 b480272.c
4 选择 高质量RGB565 即可,即是我们需要的格式
2 配置环境
1 将bb480272.c保存在某个目录,并添加到工程。
2 在需要显示的地方声明,并按如下编程即可。
****************************************************************************************************/
GUI_CONST_STORAGE GUI_BITMAP bmb480272; //声明
void GuiBmp(void)
{
GUI_DrawBitmap(&bmb480272,0,0);
}
/***************************************************************************************************
1 制作图片
1 在网上下载图片转换软件:Bitmaptool+for+embedded+programmer+V11
此软件可以将BMP转换成RGB565格式的.c文件。
2 将图片转换成RGB565的.C文件 e.g B240150.c
3 稍微修改文件得到仅含数组 const unsigned short b240150[240][150]的B240150.c文件。
2 环境配置
1 将b240150.c保存在某个目录,并添加到工程。
2 包含头文件 OpenglLcd.h
3 调用函数 GlDisBmp(u32 x0,u32 y0,u32 Xsize,u32 Ysize, const struct TUserBmp * bmpinfo);如下:
***************************************************************************************************/
const u16 bmb240150[240][150];
void GuiGlBmp(void)
{
struct TUserBmp b240150 =
{
240, // XSize
150, // YSize
(u16*)bmb240150, // Pointer to picture data
};
GlDisBmp(0,0,240,200,&b240150);
}
/***************************************************************************************************
显示JPEG图片
1制作图片数据:
1 获取BMP图片,最好是RGB565格式即16位位图。当然也可以不是。
2 使用windows画图工具将图片格式保存为JPEG格式。
2 下载JPEG格式转换成C数组的软件,如:File2C,文件转C语言数组等工具,保持为.c文件
4 建议使用一张图片一个文件,文件名和数组名相同,便于识别
5 e.g在此使用J480272的图片
2配置环境:
1 按照<GUI--移植1--VS2008_模拟1788_opengl_最小配置>编译无误后按以下步骤操作。
2 在工程的JPEG目录下加入...\GUI\JPEG中的所有.H.C文件. 并添加编译包含文件路径。
3 在jpeglib.h文件中添加如下代码,如果编译报size_t错。
#ifndef size_t
#define size_t unsigned int
#endif
4 添加制作的图片数据文件到工程。
***************************************************************************************************/
const unsigned char J480272[33316]; //声明jpeg图片信息
void GuiJpeg(void)
{
GUI_JPEG_INFO jpeginfo;
//e.g1仅此函数即可显示图片
GUI_JPEG_Draw(J480272,sizeof(J480272),10,10);
//e.g1 获取JPEG图片信息
GUI_JPEG_GetInfo(J480272,sizeof(J480272),&jpeginfo);
GUI_SetBkColor(0XFFFF); //显示获取的信息
GUI_GotoXY(200,100);
GUI_DispDecMin(jpeginfo.XSize);
GUI_DispDecMin(jpeginfo.YSize);
}