IM: im_format_ecw.h Source File

IM - An Imaging Tool

im_format_ecw.h

Go to the documentation of this file.
00001 /** \file
00002  * \brief Register the ECW Format
00003  *
00004  * See Copyright Notice in im_lib.h
00005  */
00006 
00007 #ifndef __IM_FORMAT_ECW_H
00008 #define __IM_FORMAT_ECW_H
00009 
00010 #if defined(__cplusplus)
00011 extern "C" {
00012 #endif
00013 
00014 /** \defgroup ecw ECW - ECW JPEG 2000
00015  * \section Description
00016  * 
00017  * \par
00018  * ECW JPEG 2000 Copyright 1998 Earth Resource Mapping Ltd.
00019  * Two formats are supported with this module. The ECW (Enhanced Compression Wavelet) format and the ISO JPEG 2000 format.
00020  * \par
00021  * Access to the ECW format uses the ECW JPEG 2000 SDK version 3.3. 
00022  * Available in Windows, Linux and Solaris Only. But source code is also available. \n
00023  * You must link the application with "im_ecw.lib" 
00024  * and you must call the function \ref imFormatRegisterECW once 
00025  * to register the format into the IM core library. \n
00026  * Depends also on the ECW JPEG 2000 SDK libraries (NCSEcw.lib).
00027  * \par
00028  * When using other JPEG 2000 libraries the first registered library will be used to guess the file format. 
00029  * Use the extension *.ecw to shortcut to this implementation of the JPEG 2000 format.
00030  * \par
00031  * See \ref im_format_ecw.h
00032  * \par
00033  * \par
00034  * http://www.ermapper.com/ecw/ \n
00035  * The three types of licenses available for the ECW JPEG 2000 SDK are as follows:
00036 \verbatim
00037    - ECW JPEG 2000 SDK Free Use License Agreement - This license governs the free use of
00038      the ECW JPEG 2000 SDK with Unlimited Decompression and Limited Compression (Less
00039      than 500MB).
00040    - ECW JPEG 2000 SDK Public Use License Agreement - This license governs the use of the
00041      ECW SDK with Unlimited Decompression and Unlimited Compression for applications
00042      licensed under a GNU General Public style license.
00043    - ECW JPEG 2000 SDK Commercial Use License Agreement - This license governs the use
00044      of the ECW JPEG 2000 SDK with Unlimited Decompression and Unlimited Compression
00045      for commercial applications.
00046 \endverbatim
00047  * 
00048  * \section Features
00049  *
00050 \verbatim
00051     Data Types: Byte, UShort, Float
00052     Color Spaces: BINARY, GRAY, RGB, YCBCR
00053     Compressions:
00054       ECW - Enhanced Compression Wavelet
00055       JPEG-2000 - ISO JPEG 2000  
00056     Only one image.
00057     Can have an alpha channel
00058     Internally the components are always packed.
00059     Lines arranged from top down to bottom.
00060     Handle() returns NCSFileView* when reading, NCSEcwCompressClient* when writing.
00061  
00062     Attributes:
00063       CompressionRatio   IM_FLOAT (1) [example: Ratio=7 just like 7:1]
00064       OriginX, OriginY   IM_FLOAT (1)
00065       Rotation           IM_FLOAT (1)
00066       CellIncrementX, CellIncrementY    IM_FLOAT (1)
00067       CellUnits (string)
00068       Datum (string)
00069       Projection (string)
00070       ViewWidth, ViewHeight                    IM_INT (1)    [view zoom]
00071       ViewXmin, ViewYmin, ViewXmax, ViewYmax   IM_INT (1)    [view limits]
00072       MultiBandCount IM_USHORT (1)    [Number of bands in a multiband gray image.]
00073       MultiBandSelect IM_USHORT (1)   [Band number to read one band of a multiband gray image. Must be set before reading image info.]
00074 
00075     Comments:
00076       Only read support is implemented.
00077       To read a region of the image you must set the View* attributes before reading the image data.
00078       After reading a partial image the width and height returned in ReadImageInfo is the view size.
00079       The view limits define the region to be readed. 
00080       The view size is the actual size of the image, so the result can be zoomed.
00081 \endverbatim
00082  * \ingroup format */
00083  
00084 /** Register the ECW Format 
00085  * \ingroup ecw */
00086 void imFormatRegisterECW(void);
00087                
00088                
00089 #if defined(__cplusplus)
00090 }
00091 #endif
00092 
00093 #endif