ATS_image.h 8.26 KB
/*
Copyright Wang yong ALL RIGHT RESERVED !
 @ file name: ATS_image.h

 @ description:  图片绘制接口文件

 @ Author: wangyong, doforfaith@gmail.com
 
 @ Modify History:

	Date					Event												Person
 10-05-31      Creator               			wangyong	
 
*/
#if defined(__SKY_3DGUI__)
#ifndef __ATS_IMAGE_H__
#define __ATS_IMAGE_H__

#include "ATS_basic.h"
#include "ATS_adaptation_features.h"

/*Image Type*/
#define ATS_IMG_TYPE_INVALID                  			0
#define ATS_IMG_TYPE_BMP                      				1
#define ATS_IMG_TYPE_BMP_SEQUENCE             			2
#define ATS_IMG_TYPE_GIF                      				3
#define ATS_IMG_TYPE_DEVICE_BITMAP            			4
#define ATS_IMG_TYPE_DEVICE_BITMAP_SEQUENCE   	5
#define ATS_IMG_TYPE_BMP_FILE                 			6
#define ATS_IMG_TYPE_GIF_FILE                 			7
#define ATS_IMG_TYPE_WBMP_FILE                			8
#define ATS_IMG_TYPE_JPG                      				9
#define ATS_IMG_TYPE_JPG_FILE                 			10
#define ATS_IMG_TYPE_WBMP                     				11
#define ATS_IMG_TYPE_AVI                      				12
#define ATS_IMG_TYPE_AVI_FILE                 			13
#define ATS_IMG_TYPE_3GP                      				14
#define ATS_IMG_TYPE_3GP_FILE                 			15
#define ATS_IMG_TYPE_MP4                      				16
#define ATS_IMG_TYPE_MP4_FILE                 			17
#define ATS_IMG_TYPE_JPG_SEQUENCE             			18
#define ATS_IMG_TYPE_PNG                      				19
#define ATS_IMG_TYPE_PNG_FILE                 			20
#define ATS_IMG_TYPE_PNG_SEQUENCE             			21
#define ATS_IMG_TYPE_DEVICE_BMP_FILE          		22
#define ATS_IMG_TYPE_BMP_FILE_OFFSET          		23
#define ATS_IMG_TYPE_GIF_FILE_OFFSET          		24
#define ATS_IMG_TYPE_M3D                      				25
#define ATS_IMG_TYPE_M3D_FILE                 			26
#define ATS_IMG_TYPE_SVG                      				27
#define ATS_IMG_TYPE_SVG_FILE                 			28
#define ATS_IMG_TYPE_SWFLASH                  			29
#define ATS_IMG_TYPE_SWFLASH_FILE             			30

typedef signed int ATS_IMG_TYPE;

/*Error Type*/
#define ATS_IMG_SUCCEED						0
#define ATS_IMG_FAILED							-1
#define ATS_IMG_NULL_IMG_PTR                			-1403
#define ATS_IMG_INVALID_IMG_TYPE             		-1404
#define ATS_IMG_NO_VALID_ANIMATOR            		-1405
#define ATS_IMG_FILE_EXT_NOT_SUPPOTR        		-1406
#define ATS_IMG_INVALID_FILE                		 	-1407
#define ATS_IMG_DECODE_FAILED                		-1408
#define ATS_IMG_IMAGE_TOO_LARGE              		-1409
#define ATS_IMG_OPEN_FILE_FAILED             		-1410
#define ATS_IMG_NO_DECODER_SUPPORT           	-1411
#define ATS_IMG_FRAME_BUFFER_NOT_ENOUGH	-1412	
#define ATS_IMG_FILE_FORMAT_WRONG			-1413
#define ATS_IMG_NO_DECODER					-1414
#define ATS_IMG_INVALID_IMAGE_SIZE			-1415	
#define ATS_IMG_DECODE_TIME_OUT				-1416
#define ATS_IMG_MEMORY_NOT_AVAILABLE              -1417
#define ATS_IMG_RESOURCE_NOT_AVAILABLE           -1418

typedef signed int ATS_IMG_RESULT;

/*
@ 获取图片数据的图片类型
@ img_ptr,指系统中图片数据的指针
@ 返回图片类型值,具体见上
*/
extern ATS_IMG_TYPE ATS_img_get_type( ats_uint8* img_ptr  );

/*
@ 获取图片文件的图片类型
@ img_full_name,图片文件的全路径
@ 返回图片类型值,具体见上
*/
extern ATS_IMG_TYPE ATS_img_get_type_file(ats_uint8* img_full_name);

/*
@ 获取图片缓存数据的图片类型
@ img_mem,图片缓存的指针
@ 返回图片类型值,具体见上
*/
extern ATS_IMG_TYPE ATS_img_get_type_mem(ats_uint8* img_mem);

/*
@ 获取图片数据的宽高
@ img_ptr,指系统中图片数据的指针
   width,宽,返回值
   height,高,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_get_dimension( ats_uint8* img_ptr, ats_int32* width, ats_int32* height  );

/*
@ 获取图片文件的宽高
@ img_full_name,指图片文件的全路径
   width,宽,返回值
   height,高,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_get_dimension_file( ats_uint8* img_full_name, ats_int32* width, ats_int32* height  );

/*
@ 获取图片缓存数据的宽高
@ img_ptr,指图片缓存的指针
   img_type,图片类型
   img_size,数据大小
   width,宽,返回值
   height,高,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_get_dimension_mem( ats_uint8* img_ptr, ats_int32 img_type, ats_int32 img_size, ats_int32* width, ats_int32* height  );

/*
@绘制图片数据
@ img_ptr,指系统中图片数据的指针
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* img_ptr );

/*
@ 缩放绘制图片数据
@ img_ptr,指系统中图片数据的指针
   offset_x, offset_y,位置偏移量
   resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* img_ptr );

/*
@绘制图片文件
@ img_full_name,指图片文件全路径
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_file( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* img_full_name );

/*
@ 缩放绘制图片文件
@  img_full_name,指图片文件全路径
   offset_x, offset_y,位置偏移量
  resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_file_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* img_full_name );

/*
@绘制图片缓存数据
@ img_mem,指图片缓存数据指针
   img_size,数据大小
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_mem( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* img_mem, ats_uint32 img_size );

/*
@ 缩放绘制图片缓存数据
@ img_mem,指图片缓存数据指针
   img_size,数据大小
   offset_x, offset_y,位置偏移量
  resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_mem_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* img_mem, ats_uint32 img_size );

/*
@绘制动画图片
@ anim_ptr,指图片数据指针
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* anim_ptr, ats_uint32* anim_hdl );

/*
@ 缩放绘制动画图片
@ anim_ptr,指图片数据指针
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
  resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* anim_ptr, ats_uint32* anim_hdl );

/*
@绘制动画图片文件
@ anim_full_name,指图片文件全路径
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim_file( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* anim_full_name, ats_uint32* anim_hdl );

/*
@ 缩放绘制动画图片文件
@ anim_full_name,指图片文件全路径
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
  resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim_file_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* anim_full_name, ats_uint32* anim_hdl );

/*
@ 绘制动画图片缓存数据
@ anim_mem,图片缓存数据指针
   img_size,数据大小
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim_mem( ats_int32 offset_x, ats_int32 offset_y, ats_uint8* anim_mem, ats_uint32 img_size, ats_uint32* anim_hdl );

/*
@ 缩放绘制动画图片缓存数据
@ anim_mem,图片缓存数据指针
   img_size,数据大小
   anim_hdl,动画句柄,返回值
   offset_x, offset_y,位置偏移量
  resized_width, resized_height,缩放后的大小
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_draw_anim_mem_resized( ats_int32 offset_x, ats_int32 offset_y, ats_int32 resized_width, ats_int32 resized_height, ats_uint8* anim_mem, ats_uint32 img_size, ats_uint32* anim_hdl );

/*
@ 停止动画图片
@ anim_hdl,动画句柄,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_stop_anim(ats_uint32 anim_hdl);

/*
@ 暂停动画图片
@ anim_hdl,动画句柄,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_pause_anim(ats_uint32 anim_hdl);

/*
@ 继续动画图片
@ anim_hdl,动画句柄,返回值
@ 返回结果值,具体见上
*/
extern ATS_IMG_RESULT ATS_img_resume_anim(ats_uint32 anim_hdl);

#endif /*__ATS_IMAGE_H__*/

#endif /*__SKY_3DGUI__*/