"L. Spiro Engine"
|
00001 /* 00002 * Copyright (c) 2005, HervEDrolon, 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