GUI--移植2--图片显示方法示例

图片显示,其方法都是先转为.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);
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值