"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSImageLib/Src/Jpeg/LSIJpegImage.h

00001 /*
00002  * Copyright (c) 2005, HervEDrolon, FreeImage Team
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  *
00014  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
00015  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00016  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00017  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
00018  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00019  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00020  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00021  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00022  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00023  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00024  * POSSIBILITY OF SUCH DAMAGE.
00025  */
00026 
00027 
00028 #ifndef __LSI_JPEGIMAGE_H__
00029 #define __LSI_JPEGIMAGE_H__
00030 
00031 #include "../LSIImageLib.h"
00032 
00033 namespace lsi {
00034 
00035         // == Enumerations.
00039         typedef enum COLOR_SPACE {
00040                 CLRSPC_UNKNOWN = -1,            
00041                 CLRSPC_UNSPECIFIED = 0,         
00042                 CLRSPC_SRGB = 1,                        
00043                 CLRSPC_GRAY = 2,                        
00044                 CLRSPC_SYCC = 3                         
00045         } OPJ_COLOR_SPACE;
00046 
00047 
00054         class CJpegImage {
00055         public :
00056                 // == Types.
00060                 typedef struct opj_image_comp {
00062                         LSINT32                                                                                                 dx;
00064                         LSINT32                                                                                                 dy;
00066                         LSINT32                                                                                                 w;
00068                         LSINT32                                                                                                 h;
00070                         LSINT32                                                                                                 x0;
00072                         LSINT32                                                                                                 y0;
00074                         LSINT32                                                                                                 prec;
00076                         LSINT32                                                                                                 bpp;
00078                         LSINT32                                                                                                 sgnd;
00080                         LSINT32                                                                                                 resno_decoded;
00082                         LSINT32                                                                                                 factor;
00084                         LSINT32 *                                                                                               data;
00085                 } opj_image_comp_t;
00086 
00090                 typedef struct opj_image {
00092                         LSINT32                                                                                                 x0;
00094                         LSINT32                                                                                                 y0;
00096                         LSINT32                                                                                                 x1;
00098                         LSINT32                                                                                                 y1;
00100                         LSINT32                                                                                                 numcomps;
00102                         OPJ_COLOR_SPACE                                                                                 color_space;
00104                         opj_image_comp_t *                                                                              comps;
00106                         LSUINT8 *                                                                                               icc_profile_buf;
00108                         LSINT32                                                                                                 icc_profile_len;
00109                 } opj_image_t;
00110 
00114                 typedef struct opj_image_comptparm {
00116                         LSINT32                                                                                                 dx;
00118                         LSINT32                                                                                                 dy;
00120                         LSINT32                                                                                                 w;
00122                         LSINT32                                                                                                 h;
00124                         LSINT32                                                                                                 x0;
00126                         LSINT32                                                                                                 y0;
00128                         LSINT32                                                                                                 prec;
00130                         LSINT32                                                                                                 bpp;
00132                         LSINT32                                                                                                 sgnd;
00133                 } opj_image_cmptparm_t;
00134 
00135 
00136                 // == Functions.
00142                 static opj_image_t *                                                                            opj_image_create0();
00143 
00152                 static opj_image_t * LSE_CALL                                                           opj_image_create( LSINT32 _i32NumComponents, opj_image_cmptparm_t * _picComponentParms, OPJ_COLOR_SPACE _csColorSpace );
00153 
00159                 static LSVOID LSE_CALL                                                                          opj_image_destroy( opj_image_t * _piImage );
00160         };
00161 
00162 }       // namespace lsi
00163 
00164 #endif  // __LSI_JPEGIMAGE_H__
00165 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator