MrSID Decode SDK for Raster Reference Manual
9.5.4.4709
|
00001 /* $Id$ */ 00002 /* ////////////////////////////////////////////////////////////////////////// 00003 // // 00004 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, // 00005 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00006 // prohibited. Access to and use of this code is permitted only under // 00007 // license from LizardTech, Inc. Portions of the code are protected by // 00008 // US and foreign patents and other filings. All Rights Reserved. // 00009 // // 00011 /* PUBLIC - C*/ 00012 00013 #ifndef LTI_TYPES_H 00014 #define LTI_TYPES_H 00015 00016 #include "lt_base.h" 00017 #include <stddef.h> // NULL 00018 00019 00020 00021 #ifdef LT_CPLUSPLUS 00022 extern "C" { 00023 #endif 00024 00038 typedef enum LTIColorSpace 00039 { 00040 LTI_COLORSPACE_INVALID = 0x000000, 00041 LTI_COLORSPACE_MASK_ALPHA = 0x010000, 00042 LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED = 0x020000, 00043 00044 // 1-banded colorspaces 00045 LTI_COLORSPACE_GRAYSCALE = 0x000101, 00046 LTI_COLORSPACE_PALETTE = 0x000102, 00047 LTI_COLORSPACE_GRAYSCALEA = LTI_COLORSPACE_GRAYSCALE | LTI_COLORSPACE_MASK_ALPHA, 00048 LTI_COLORSPACE_GRAYSCALEA_PM = LTI_COLORSPACE_GRAYSCALEA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00049 00050 // 3-banded colorspaces 00051 LTI_COLORSPACE_RGB = 0x000301, 00052 LTI_COLORSPACE_CMY = 0x000302, 00053 LTI_COLORSPACE_YIQ = 0x000303, 00054 LTI_COLORSPACE_RGBA = LTI_COLORSPACE_RGB | LTI_COLORSPACE_MASK_ALPHA, 00055 LTI_COLORSPACE_RGBA_PM = LTI_COLORSPACE_RGBA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00056 LTI_COLORSPACE_CMYA = LTI_COLORSPACE_CMY | LTI_COLORSPACE_MASK_ALPHA, 00057 LTI_COLORSPACE_CMYA_PM = LTI_COLORSPACE_CMYA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00058 LTI_COLORSPACE_YIQA = LTI_COLORSPACE_YIQ | LTI_COLORSPACE_MASK_ALPHA, 00059 LTI_COLORSPACE_YIQA_PM = LTI_COLORSPACE_YIQA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00060 00061 // 4-banded colorspaces 00062 LTI_COLORSPACE_RGBK = 0x000401, 00063 LTI_COLORSPACE_CMYK = 0x000402, 00064 LTI_COLORSPACE_YIQK = 0x000403, 00065 LTI_COLORSPACE_RGBKA = LTI_COLORSPACE_RGBK | LTI_COLORSPACE_MASK_ALPHA, 00066 LTI_COLORSPACE_RGBKA_PM = LTI_COLORSPACE_RGBKA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00067 LTI_COLORSPACE_CMYKA = LTI_COLORSPACE_CMYK | LTI_COLORSPACE_MASK_ALPHA, 00068 LTI_COLORSPACE_CMYKA_PM = LTI_COLORSPACE_CMYKA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00069 LTI_COLORSPACE_YIQKA = LTI_COLORSPACE_YIQK | LTI_COLORSPACE_MASK_ALPHA, 00070 LTI_COLORSPACE_YIQKA_PM = LTI_COLORSPACE_YIQKA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED, 00071 00072 // N-banded colorspaces 00073 LTI_COLORSPACE_MULTISPECTRAL = 0x00FF01, 00074 LTI_COLORSPACE_MULTISPECTRALA = LTI_COLORSPACE_MULTISPECTRAL | LTI_COLORSPACE_MASK_ALPHA, 00075 LTI_COLORSPACE_MULTISPECTRALA_PM = LTI_COLORSPACE_MULTISPECTRALA | LTI_COLORSPACE_MASK_ALPHA_PRE_MULTIPLIED 00076 } LTIColorSpace; 00077 00083 typedef enum LTIColor 00084 { 00085 LTI_COLOR_INVALID = 0, 00086 LTI_COLOR_RED = 1, 00087 LTI_COLOR_GREEN = 2, 00088 LTI_COLOR_BLUE = 3, 00089 LTI_COLOR_CYAN = 4, 00090 LTI_COLOR_MAGENTA = 5, 00091 LTI_COLOR_YELLOW = 6, 00092 LTI_COLOR_BLACK = 7, 00093 LTI_COLOR_GRAY = 8, 00094 LTI_COLOR_UNKNOWN = 9, 00095 LTI_COLOR_ALPHA = 10, 00096 LTI_COLOR_PRE_MULTIPLIED_ALPHA = 11 00097 } LTIColor; 00098 00099 00105 typedef enum LTIDataType 00106 { 00107 LTI_DATATYPE_INVALID = 0, 00108 LTI_DATATYPE_UINT8 = 1, 00109 LTI_DATATYPE_SINT8 = 2, 00110 LTI_DATATYPE_UINT16 = 3, 00111 LTI_DATATYPE_SINT16 = 4, 00112 LTI_DATATYPE_UINT32 = 5, 00113 LTI_DATATYPE_SINT32 = 6, 00114 LTI_DATATYPE_FLOAT32 = 7, 00115 LTI_DATATYPE_FLOAT64 = 8 00116 // not supported at this time 00117 //LTI_DATATYPE_UINT64 = 9, 00118 //LTI_DATATYPE_SINT64 = 10, 00119 //LTI_DATATYPE_COMPLEX32 = 11, // (float32 Real, float32 Imaginary) 00120 //LTI_DATATYPE_COMPLEX64 = 12 // (float64 Real, float64 Imaginary) 00121 } LTIDataType; 00122 00123 00124 00132 typedef enum LTIPosition 00133 { 00134 LTI_POSITION_UPPER_LEFT = 1, 00135 LTI_POSITION_UPPER_CENTER = 2, 00136 LTI_POSITION_UPPER_RIGHT = 3, 00137 LTI_POSITION_LOWER_LEFT = 4, 00138 LTI_POSITION_LOWER_CENTER = 5, 00139 LTI_POSITION_LOWER_RIGHT = 6, 00140 LTI_POSITION_CENTER_LEFT = 7, 00141 LTI_POSITION_CENTER = 8, 00142 LTI_POSITION_CENTER_RIGHT = 9 00143 } LTIPosition; 00144 00145 00152 typedef enum LTILayout 00153 { 00154 LTI_LAYOUT_INVALID = 0, 00155 LTI_LAYOUT_BIP = 1, 00156 LTI_LAYOUT_BSQ = 2, 00157 LTI_LAYOUT_BIL = 3 00158 } LTILayout; 00159 00160 00164 typedef enum LTIEndian 00165 { 00166 LTI_ENDIAN_INVALID = 0, 00167 LTI_ENDIAN_HOST = 1, 00168 LTI_ENDIAN_LITTLE = 2, 00169 LTI_ENDIAN_BIG = 3 00170 } LTIEndian; 00171 00176 typedef enum LTIResampleMethod 00177 { 00178 LTI_RESAMPLE_INVALID = 0, 00179 LTI_RESAMPLE_NEAREST = 1, 00180 LTI_RESAMPLE_BILINEAR = 2, 00181 LTI_RESAMPLE_BICUBIC = 3 00182 } LTIResampleMethod; 00183 00187 typedef enum LTIPixelFillMethod 00188 { 00189 LTI_PIXELFILL_HARD = 0, // use NoData 00190 LTI_PIXELFILL_FUZZY = 1, // use fuzzy NoData 00191 LTI_PIXELFILL_COPY = 2 // ignore NoData 00192 } LTIPixelFillMethod; 00193 00194 /* 00195 * constants representing possible pixel modifications 00196 */ 00197 typedef enum LTIEncodingModification 00198 { 00199 LTI_MODIFICATION_NONE = 0x00000000, 00200 LTI_MODIFICATION_LOSSLESS = 0x00000000, 00201 LTI_MODIFICATION_UNKNOWN = 0x00000001, 00202 LTI_MODIFICATION_COMPRESSED = 0x00000002, 00203 LTI_MODIFICATION_CROPPED = 0x00000004, 00204 LTI_MODIFICATION_EMBEDDED = 0x00000008, 00205 LTI_MODIFICATION_SCALED = 0x00000010, 00206 LTI_MODIFICATION_MASKED = 0x00000020, 00207 LTI_MODIFICATION_INTERPRETEDALPHA = 0x00000040, 00208 LTI_MODIFICATION_REORDEREDBANDS = 0x00000080, 00209 LTI_MODIFICATION_CHANGEDCOLORSPACE = 0x00000100, 00210 LTI_MODIFICATION_CHANGEDDATATYPE = 0x00000200, 00211 LTI_MODIFICATION_ALTEREDCOLOR = 0x00000400, 00212 LTI_MODIFICATION_MOSAICKED = 0x00000800, 00213 LTI_MODIFICATION_REPROJECTED = 0x00001000, 00214 LTI_MODIFICATION_WATERMARKED = 0x00002000, 00215 LTI_MODIFICATION_OVERLAID = 0x00004000, 00216 LTI_MODIFICATION_COMPRESSEDPERBAND = 0X00008000, 00217 LTI_MODIFICATION_QUANTIZED = 0X00010000, 00218 LTI_MODIFICATION_OPAQUEALPHA = 0x00020000, 00219 LTI_MODIFICATION_LOSSLESS_MASK = LTI_MODIFICATION_OPAQUEALPHA, 00220 LTI_MODIFICATION_LOSSY_MASK = ~LTI_MODIFICATION_LOSSLESS_MASK, 00221 LTI_MODIFICATION_ANY_MASK = ~LTI_MODIFICATION_NONE 00222 00223 } LTIEncodingModifications; 00224 00225 /* 00226 * constants representing the constructed pipeline 00227 */ 00228 typedef enum LTIPipelineInfo 00229 { 00230 LTI_PIPELINE_INFO_NON_LEVEL_DECODES = 1 00231 } LTIPipelineInfo; 00232 00233 #ifdef LT_CPLUSPLUS 00234 } 00235 00236 LT_BEGIN_NAMESPACE(LizardTech) 00237 00238 // fwd decls (utils) 00239 class LTFileSpec; 00240 class LTIOStreamInf; 00241 00242 // fwd decls (SDK core) 00243 class LTIGeoCoord; 00244 class LTIImage; 00245 class LTIImageFilter; 00246 class LTIImageReader; 00247 class LTIImageStage; 00248 class LTIImageWriter; 00249 class LTIInterruptDelegate; 00250 class LTIMetadataDatabase; 00251 class LTINavigator; 00252 class LTIPixel; 00253 class LTIPixelLookupTable; 00254 class LTIProgressDelegate; 00255 class LTISample; 00256 class LTIScene; 00257 class LTISceneBuffer; 00258 class LTIMaskSource; 00259 class LTIMask; 00260 00261 LT_END_NAMESPACE(LizardTech) 00262 00263 #endif 00264 00265 #endif