📄 Ȧ-
字号:
/****************************************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 + -