📄 jzbmpdecode.cpp
字号:
/********************** BEGIN LICENSE BLOCK ************************************
*
* JZ4740 mobile_tv Project V1.0.0
* INGENIC CONFIDENTIAL--NOT FOR DISTRIBUTION IN SOURCE CODE FORM
* Copyright (c) Ingenic Semiconductor Co. Ltd 2005. All rights reserved.
*
* This file, and the files included with this file, is distributed and made
* available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
*
* http://www.ingenic.cn
*
********************** END LICENSE BLOCK **************************************
*
* Author: <dsqiu@ingenic.cn> <hlyu@ingenic.cn>
*
* Create: 2008-03-04, by dsqiu
* Maintain: 2008-06-23, by hlyu
*
*******************************************************************************
*/
#if JZ4740_PMP16
#include "JzImage.h"
#include "xiofile.h"
#include "JzImageBmp.h"
#include "JzImageInfo.h"
extern "C"{
//result: 0 -- error
//result: 1 -- finish
#include "excpt.h"
//void ShowGIF( CJzImage * );
static IVSETIMAGEINFO ivSetImageInfo = NULL;
void ivSetImageBuf( IVSETIMAGEINFO func)
{
ivSetImageInfo = func;
}
BOOL C_DecodeImage(char *filename, void *p);
static unsigned int saveregister[2];
BOOL DecodeImage(char *filename, void *p)
{
#if EXCEPTION_XIMAGE
SAVE_PROCESS_REGISTER(saveregister);
#endif
C_DecodeImage(filename,p);
}
#if EXCEPTION_XIMAGE
static void image_excpt()
{
iv_memory_deinit( 0 );
excpt_exit(FALSE, saveregister);
}
#endif
BOOL C_DecodeImage(char *filename, void *p)
{
int excptid;
iv_memory_init( 0 );
#if EXCEPTION_XIMAGE
excptid = AddExcept(image_excpt,saveregister);
#endif
PSCRINFO pscr = (PSCRINFO)p;
char *ext;
BOOL decodeOk = FALSE;
CJzImage *image;
CxIOFile *file;
printf(" ^^^^^^^^^ filename decode: %s \n", filename );
image = new CJzImageBmp(pscr);
if(image)
{
file = new CxIOFile(NULL);
if(file->Open(filename,"rb"))
{
decodeOk = image->Decode((CxFile *)file);
file->Close();
delete image;
image = 0;
}
delete file;
file = 0;
}
if(image)
delete image;
if(file)
delete file;
iv_memory_deinit( 0 );
#if EXCEPTION_XIMAGE
DecExcept(excptid,saveregister);
excpt_exit(decodeOk,saveregister);
#endif
return decodeOk;
}
IVSETIMAGEINFO ivGetImageInfoCallback( void )
{
return ivSetImageInfo;
}
}//end extern "C"
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -