⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 Ȧ-

📁 基于Luminary的JPEG图片浏览器
💻
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**------File Info-----------------------------------------------------------------------------------------
** File name:               JPEG.H
** Latest modified Date:    2008-07-19
** Latest Version:          1.0
** Descriptions:            JPEG图片解压模块接口
**
**--------------------------------------------------------------------------------------------------------
** Created by:              张展威
** Created date:            2008-07-19
** Version:                 1.0
** Descriptions:            
**
**--------------------------------------------------------------------------------------------------------
** Modified by:             
** Modified date:           
** Version:                 
** Descriptions:            
**
*********************************************************************************************************/
#ifndef  JPEG_H
#define  JPEG_H

#include "..\HeadFile\dataType.h"//定义常用数据类型及函数返回值

#define __USE_IDM                                                     /* 使用IDM显示屏                */



                                                                        /* 定义标示符                   */
#define     SOF0      0xc0                                              /* 第0帧开始                    */
#define     DHT       0xc4                                              /* 定义哈夫曼表                 */
#define     EOI       0xd9                                              /* 图形结束                     */
#define     SOS       0xda                                              /* 开始扫描                     */
#define     DQT       0xdb                                              /* 定义量化表                   */
#define     DRI       0xdd                                              /* 定义重启间隔                 */
#define     APP0      0xe0                                              /* 文件使用JFIF规格标记         */



                                                                        /* 定义IDCT表                   */
#define     W1      2841                                                /* 2048*sqrt(2)*cos(1*pi/16)    */
#define     W2      2676                                                /* 2048*sqrt(2)*cos(2*pi/16)    */
#define     W3      2408                                                /* 2048*sqrt(2)*cos(3*pi/16)    */
#define     W5      1609                                                /* 2048*sqrt(2)*cos(5*pi/16)    */
#define     W6      1108                                                /* 2048*sqrt(2)*cos(6*pi/16)    */
#define     W7      565                                                 /* 2048*sqrt(2)*cos(7*pi/16)    */

                                                                        /* 定义函数返回值               */
#define     FUNC_OK             0
#define     FUNC_MEMORY_ERROR   1
#define     FUNC_FILE_ERROR     2
#define     FUNC_FORMAT_ERROR   3


#define     JPEGBACKCOLOR         0xFFFF                                /* 定义背景颜色 白色            */


#define   MAKEWORD(a, b)   ((INT16U)(((INT8U)(a)) | ((INT16U)((INT8U)(b))) << 8))

typedef struct
{
    INT16U  preWidth;                                                   /* 原始宽度                     */
    INT16U  preHeight;                                                  /* 原始高度                     */
    INT16U  sideWidth;                                                  /* 缩放边宽                     */
    INT16U  sideHeight;                                                 /* 缩放边高                     */
    INT16U  curtWidth;                                                  /* 当前宽度                     */
    INT16U  curtHeight;                                                 /* 当前高度                     */
} ZOOMINFO;


/*********************************************************************************************************
** 本模块函数声明
*********************************************************************************************************/

/*********************************************************************************************************
** 函数名称: jpgDecode
** 功能描述: jpg格式图像解码函数,解码后为16bit/像素的RGB颜色数据 R:b15--b11   G:d10--d5  B:d4--d0
** 输 入:   uint8 *pucInBuf               指向图像数据的指针
**           INT16U *puiOutBuf             指向解码数据输出缓存的指针
**           ZOOMINFO *psSizeInfo          指向存储图片信息的结构体变量
** 调用模块  jpgReadInit()                   :初始化jpg文件读环境
**           jpgFileReadByte()               :从jpg文件指定偏移量处读取1Byte数据
**           displayRGB()                    :显示一最小编码单元的图像
** 返回:     TRUE                          解码成功
**           FALSE                         解码失败
*********************************************************************************************************/
extern BOOLEAN jpgDecode(INT8U *pucInBuf, ZOOMINFO *psSizeInfo, INT16U *puiOutBuf);




/*********************************************************************************************************
** 外部函数声明
*********************************************************************************************************/                                                                    
typedef struct
{
    unsigned short uiXMin;                                              /* The minimum X coordinate of  */
                                                                        /* the rectangle.               */
    unsigned short uiYMin;                                              /* The minimum Y coordinate of  */
                                                                        /* the rectangle.               */
    unsigned short uiXMax;                                              /* The maximum X coordinate of  */
                                                                        /* the rectangle.               */
    unsigned short uiYMax;                                              /* The maximum Y coordinate of  */
                                                                        /* the rectangle.               */
    unsigned short uiXinZoon;                                           /* The Current X coordinate in  */
                                                                        /* the Zoon.                    */
    unsigned short uiYinZoon;                                           /* The Current Y coordinate in  */
                                                                        /* the Zoon.                    */
}RECTANGLE;

/*********************************************************************************************************
** 函数名称: jpgReadInit()
** 功能描述: 初始化jpg格式图片数据读(input string)环境
**
** 输   入: INT8U *pucInBuf:存放图片的基址
**    
** 输   出: 无
**         
** 全局变量: static INT8U  *__GpucInBuf      :缓用于存基址指针pucInBuf
**           static INT32U GulJpgFileStart   :标记有效缓存数据的起始偏移量
**           static INT32U GulJpgFileEnd     :标记有效缓存数据的终止偏移量
**           static BOOLEAN GbJpgFileEOF     :标记文件是否读结束
**           volatile INT8U GucJpgReadPrev   :标记上次读文件时的字节内容
**           
** 调用模块: 
**
** 作    者: 张展威
** 日    期: 2008-07-25
*********************************************************************************************************/
extern void jpgReadInit(INT8U *pucInBuf);

/*********************************************************************************************************
** 函数名称: jpgFileReadByte()
** 功能描述: 从jpg文件指定偏移量处读取1Byte数据
**
** 输   入: INT32U ulOffset:文件偏移量(Bytes)
**    
** 输   出: 无
**
** 返    回: 文件对应偏移量(Bytes)的1 Byte数据,溢出文件大小则返回 0
**         
** 全局变量: static INT8U  *__GpucInBuf      :缓用于存基址指针pucInBuf
**           static INT32U GulJpgFileStart   :标记有效缓存数据的起始偏移量
**           static INT32U GulJpgFileEnd     :标记有效缓存数据的终止偏移量
**           static BOOLEAN GbJpgFileEOF     :标记文件是否读结束
**           volatile INT8U GucJpgReadPrev   :标记上次读文件时的字节内容
**           static INT8U GucFileReadBuf[128]:n Bytes 文件数据缓存
**           
** 调用模块: 无
**
** 作    者: 张展威
** 日    期: 2008-07-25
*********************************************************************************************************/
extern INT8U jpgFileReadByte(INT32U ulOffset);

/*********************************************************************************************************
** 函数名称: displayRGB()
** 功能描述: RGB格式图片显示,显示一最小编码单元的图像
**
** 输   入: RECTANGLE * psZoon:指向表示绘图区域大小及起始绘图点的结构变量
**           INT16U * puiOutBuf:指向RGB颜色数据
**           INT32U ulCounter  :需要绘图的像素数
** 输   出: 无
**         
** 全局变量: 无
**           
** 调用模块: Formike240x320x16_ILI9320PictureFill((tRectangle *)psZoon, (INT16U *)puiOutBuf, ulCounter);
**           用颜色数据填充矩形区域,进行图像重构
**
** 作    者: 张展威
** 日    期: 2008-07-25
*********************************************************************************************************/
extern void displayRGB( RECTANGLE * psZoon, INT16U * puiOutBuf, INT32U ulCounter);


#endif

/*********************************************************************************************************
** End of File
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -