X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=utilities%2FCxImage%2Fximajas.h;h=c5874d17939925e1830dab8b3db5a02a51564db3;hb=0141f3887fe8e6e429621b603b6359be679e9fb5;hp=7225f0132eb22d99d86faeba9906a3c0ddade3a5;hpb=19d5db17f1c0e98cf84a6cb83643404a550a12a4;p=clitk.git diff --git a/utilities/CxImage/ximajas.h b/utilities/CxImage/ximajas.h index 7225f01..c5874d1 100644 --- a/utilities/CxImage/ximajas.h +++ b/utilities/CxImage/ximajas.h @@ -1,84 +1,84 @@ -/* - * File: ximajas.h - * Purpose: Jasper Image Class Loader and Writer - */ -/* ========================================================== - * CxImageJAS (c) 12/Apr/2003 Davide Pizzolato - www.xdp.it - * For conditions of distribution and use, see copyright notice in ximage.h - * - * based on JasPer Copyright (c) 2001-2003 Michael David Adams - All rights reserved. - * ========================================================== - */ -#if !defined(__ximaJAS_h) -#define __ximaJAS_h - -#include "ximage.h" - -#if CXIMAGE_SUPPORT_JASPER - -#include "../jasper/include/jasper/jasper.h" - -class CxImageJAS: public CxImage -{ -public: - CxImageJAS(): CxImage((DWORD)0) {} // cast to DWORD - -// bool Load(const TCHAR * imageFileName){ return CxImage::Load(imageFileName,0);} -// bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,0);} - bool Decode(CxFile * hFile, DWORD imagetype = 0); - bool Decode(FILE *hFile, DWORD imagetype = 0) { CxIOFile file(hFile); return Decode(&file,imagetype); } - -#if CXIMAGE_SUPPORT_ENCODE - bool Encode(CxFile * hFile, DWORD imagetype = 0); - bool Encode(FILE *hFile, DWORD imagetype = 0) { CxIOFile file(hFile); return Encode(&file,imagetype); } -#endif // CXIMAGE_SUPPORT_ENCODE -protected: - - class CxFileJas - { - public: - CxFileJas(CxFile* pFile,jas_stream_t *stream) - { - if (stream->obj_) jas_free(stream->obj_); - stream->obj_ = pFile; - - // - cannot set the stream->ops_->functions here, - // because this overwrites a static structure in the Jasper library. - // This structure is used by Jasper for internal operations too, e.g. tempfile. - // However the ops_ pointer in the stream can be overwritten. - - //stream->ops_->close_ = JasClose; - //stream->ops_->read_ = JasRead; - //stream->ops_->seek_ = JasSeek; - //stream->ops_->write_ = JasWrite; - - jas_stream_CxFile.close_ = JasClose; - jas_stream_CxFile.read_ = JasRead; - jas_stream_CxFile.seek_ = JasSeek; - jas_stream_CxFile.write_ = JasWrite; - - stream->ops_ = &jas_stream_CxFile; - - // - end - } - static int JasRead(jas_stream_obj_t *obj, char *buf, int cnt) - { return ((CxFile*)obj)->Read(buf,1,cnt); } - static int JasWrite(jas_stream_obj_t *obj, char *buf, int cnt) - { return ((CxFile*)obj)->Write(buf,1,cnt); } - static long JasSeek(jas_stream_obj_t *obj, long offset, int origin) - { return ((CxFile*)obj)->Seek(offset,origin); } - static int JasClose(jas_stream_obj_t * /*obj*/) - { return 1; } - - // -private: - jas_stream_ops_t jas_stream_CxFile; - // - end - - }; - -}; - -#endif - -#endif +/* + * File: ximajas.h + * Purpose: Jasper Image Class Loader and Writer + */ +/* ========================================================== + * CxImageJAS (c) 12/Apr/2003 Davide Pizzolato - www.xdp.it + * For conditions of distribution and use, see copyright notice in ximage.h + * + * based on JasPer Copyright (c) 2001-2003 Michael David Adams - All rights reserved. + * ========================================================== + */ +#if !defined(__ximaJAS_h) +#define __ximaJAS_h + +#include "ximage.h" + +#if CXIMAGE_SUPPORT_JASPER + +#include "../jasper/include/jasper/jasper.h" + +class CxImageJAS: public CxImage +{ +public: + CxImageJAS(): CxImage((DWORD)0) {} // cast to DWORD + +// bool Load(const TCHAR * imageFileName){ return CxImage::Load(imageFileName,0);} +// bool Save(const TCHAR * imageFileName){ return CxImage::Save(imageFileName,0);} + bool Decode(CxFile * hFile, DWORD imagetype = 0); + bool Decode(FILE *hFile, DWORD imagetype = 0) { CxIOFile file(hFile); return Decode(&file,imagetype); } + +#if CXIMAGE_SUPPORT_ENCODE + bool Encode(CxFile * hFile, DWORD imagetype = 0); + bool Encode(FILE *hFile, DWORD imagetype = 0) { CxIOFile file(hFile); return Encode(&file,imagetype); } +#endif // CXIMAGE_SUPPORT_ENCODE +protected: + + class CxFileJas + { + public: + CxFileJas(CxFile* pFile,jas_stream_t *stream) + { + if (stream->obj_) jas_free(stream->obj_); + stream->obj_ = pFile; + + // - cannot set the stream->ops_->functions here, + // because this overwrites a static structure in the Jasper library. + // This structure is used by Jasper for internal operations too, e.g. tempfile. + // However the ops_ pointer in the stream can be overwritten. + + //stream->ops_->close_ = JasClose; + //stream->ops_->read_ = JasRead; + //stream->ops_->seek_ = JasSeek; + //stream->ops_->write_ = JasWrite; + + jas_stream_CxFile.close_ = JasClose; + jas_stream_CxFile.read_ = JasRead; + jas_stream_CxFile.seek_ = JasSeek; + jas_stream_CxFile.write_ = JasWrite; + + stream->ops_ = &jas_stream_CxFile; + + // - end + } + static int JasRead(jas_stream_obj_t *obj, char *buf, int cnt) + { return ((CxFile*)obj)->Read(buf,1,cnt); } + static int JasWrite(jas_stream_obj_t *obj, char *buf, int cnt) + { return ((CxFile*)obj)->Write(buf,1,cnt); } + static long JasSeek(jas_stream_obj_t *obj, long offset, int origin) + { return ((CxFile*)obj)->Seek(offset,origin); } + static int JasClose(jas_stream_obj_t * /*obj*/) + { return 1; } + + // +private: + jas_stream_ops_t jas_stream_CxFile; + // - end + + }; + +}; + +#endif + +#endif