MrSID Decode SDK for Raster Reference Manual  9.5.4.4709
lti_utils.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
13 #ifndef LTI_UTILS_H
14 #define LTI_UTILS_H
15 
16 
17 // lt_lib_mrsid_core
18 #include "lti_types.h"
19 
21 #define LTI_DEFAULT_MAG_SNAP_THRESHOLD 0.41503749927884381
22 
31 class LTIUtils
32 {
33 public:
45 
46 #if 1 //JAH deprecate
47 
54 
61  static bool hasAlphaBand(LTIColorSpace colorspace);
62 #endif
63 
72  static lt_uint8 getNumBytes(LTIDataType datatype);
73 
83  static bool isSigned(LTIDataType datatype);
84 
94  static bool isIntegral(LTIDataType datatype);
95  static bool isFloatingPoint(LTIDataType datatype);
96 
97  static double getMinValue(LTIDataType datatype);
98  static double getMaxValue(LTIDataType datatype);
99 
100  static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder);
101 
106 
118  static void convertWindowLevelToMinMax(double window, double level,
119  double& drmin, double& drmax);
120 
135  static void convertMinMaxToWindowLevel(double drmin, double drmax,
136  double& window, double& level);
143 
157  static lt_int32 magToLevel(double mag);
158 
169  static double levelToMag(lt_int32 level);
170 
179  static double snapToOctave(double mag, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
180 
191  static double snapToOctave(double mag, const LTIImageStage &imageStage, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
192 
193  static bool isOctave(double mag);
194 
195 
205  lt_uint32 height,
206  lt_uint32 iconsize);
207 
216  static double getMagForIcon(lt_uint32 width,
217  lt_uint32 height,
218  lt_uint32 iconsize);
219 
220  static double getMaxMag(lt_uint32 width, lt_uint32 height);
221 
235  static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height,
236  double mag,
237  lt_uint32 &scaledWidth, lt_uint32 &scaledHeight);
238 
257  static void getVersionInfo(lt_uint32& major,
258  lt_uint32& minor,
259  lt_uint32& revision,
260  lt_uint32& build,
261  const char*& branch);
262 
272  static const char* getVersionString();
273 
274 private:
275  // nope
276  LTIUtils();
277  LTIUtils(const LTIUtils&);
278 };
279 
280 
282 
283 #endif // LTI_UTILS_H
static bool hasAlphaBand(LTIColorSpace colorspace)
returns true with colorspace has alpha channel flags
static LTIColorSpace getColorSpaceWithoutAlpha(LTIColorSpace colorspace)
returns the colorspace without alpha channel flag
static lt_uint8 getNumBytes(LTIDataType datatype)
returns number of bytes for a given a datatype
This file contains a number of enums, typedefs, etc, that are used throughout the MrSID SDK...
static double getMaxValue(LTIDataType datatype)
static void getVersionInfo(lt_uint32 &major, lt_uint32 &minor, lt_uint32 &revision, lt_uint32 &build, const char *&branch)
get SDK version information
#define LTI_DEFAULT_MAG_SNAP_THRESHOLD
Definition: lti_utils.h:21
static double getMinValue(LTIDataType datatype)
static bool isIntegral(LTIDataType datatype)
returns true if datatype is integral
static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder)
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39
static double snapToOctave(double mag, double threshold=0.41503749927884381)
snap to octave
LTIColorSpace
colorspaces
Definition: lti_types.h:38
static bool isOctave(double mag)
convert mag to level
static bool isSigned(LTIDataType datatype)
returns true if datatype is signed
static lt_uint8 getNumLevelsForIcon(lt_uint32 width, lt_uint32 height, lt_uint32 iconsize)
get the number of levels needed to scale an image to a given icon size
LTIEndian
constants representing endianness (byte order)
Definition: lti_types.h:164
static const char * getVersionString()
get SDK version information as a string
#define LT_BEGIN_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:84
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
static lt_int32 magToLevel(double mag)
convert mag to level
static double levelToMag(lt_int32 level)
convert level to mag
static double getMagForIcon(lt_uint32 width, lt_uint32 height, lt_uint32 iconsize)
get the magnification needed to scale an image to a given icon size
static void convertWindowLevelToMinMax(double window, double level, double &drmin, double &drmax)
convert from window/level to min/max
abstract class for decoding from an image
static void convertMinMaxToWindowLevel(double drmin, double drmax, double &window, double &level)
convert from min/max to window/level
utility functions
Definition: lti_utils.h:31
unsigned char lt_uint8
unsigned 8-bit integer
Definition: lt_types.h:46
LTIDataType
datatypes
Definition: lti_types.h:105
signed int lt_int32
signed 32-bit integer
Definition: lt_types.h:52
static double getMaxMag(lt_uint32 width, lt_uint32 height)
convert mag to level
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
static bool isFloatingPoint(LTIDataType datatype)
static lt_uint8 getMinNumSamplesPerPixel(LTIColorSpace colorspace)
returns number of samples per pixel
static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height, double mag, lt_uint32 &scaledWidth, lt_uint32 &scaledHeight)
get dimensions at an octave

LizardTech