Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# IO/vtkTIFFReader.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkTIFFReader.h,v $
    00005   Language:  C++
    00006
    00007
    00008 Copyright (c) 1993-2001 Ken Martin, Will Schroeder, Bill Lorensen
    00009 All rights reserved.
    00010
    00011 Redistribution and use in source and binary forms, with or without
    00012 modification, are permitted provided that the following conditions are met:
    00013
    00014  * Redistributions of source code must retain the above copyright notice,
    00015    this list of conditions and the following disclaimer.
    00016
    00017  * Redistributions in binary form must reproduce the above copyright notice,
    00018    this list of conditions and the following disclaimer in the documentation
    00019    and/or other materials provided with the distribution.
    00020
    00021  * Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the names
    00022    of any contributors may be used to endorse or promote products derived
    00023    from this software without specific prior written permission.
    00024
    00025  * Modified source versions must be plainly marked as such, and must not be
    00026    misrepresented as being the original software.
    00027
    00028 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
    00029 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    00030 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    00031 ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
    00032 ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    00033 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    00034 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    00035 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    00036 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    00037 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    00038
    00039 =========================================================================*/
    00067 #ifndef __vtkTIFFReader_h
    00068 #define __vtkTIFFReader_h
    00069
    00070 #include "vtkImageReader2.h"
    00071
    00072 //BTX
    00073 class vtkTIFFReaderInternal;
    00074 //ETX
    00075
    00076 class VTK_IO_EXPORT vtkTIFFReader : public vtkImageReader2
    00077 {
    00078 public:
    00079   static vtkTIFFReader *New();
    00080   vtkTypeRevisionMacro(vtkTIFFReader,vtkImageReader2);
    00081   virtual void PrintSelf(ostream& os, vtkIndent indent);
    00082
    00083   virtual int CanReadFile(const char* fname);
    00084
    00086
    00088   virtual const char* GetFileExensions()
    00089     {
    00090     return ".tif .tiff";
    00091     }
    00093
    00095
    00097   virtual const char* GetDescriptiveName()
    00098     {
    00099     return "TIFF";
    00100     }
    00102
    00104   void InitializeColors();
    00105
    00106 //BTX
    00107   enum { NOFORMAT, RGB, GRAYSCALE, PALETTE_RGB, PALETTE_GRAYSCALE, OTHER };
    00108
    00109   void ReadImageInternal( void *, void *outPtr,
    00110                           int *outExt, unsigned int size );
    00111
    00112
    00114
    00115   vtkTIFFReaderInternal *GetInternalImage()
    00116     { return this->InternalImage; }
    00118 //ETX
    00119
    00120 protected:
    00121   vtkTIFFReader();
    00122   ~vtkTIFFReader();
    00123
    00124   void GetColor( int index,
    00125                  unsigned short *r, unsigned short *g, unsigned short *b );
    00126   unsigned int  GetFormat();
    00127   virtual void ExecuteInformation();
    00128   virtual void ExecuteData(vtkDataObject *out);
    00129
    00130   void ReadGenericImage( void *out,
    00131                          unsigned int width, unsigned int height,
    00132                          unsigned int size );
    00133
    00134   int EvaluateImageAt( void*, void* );
    00135
    00136 private:
    00137   vtkTIFFReader(const vtkTIFFReader&);  // Not implemented.
    00138   void operator=(const vtkTIFFReader&);  // Not implemented.
    00139
    00140   unsigned short *ColorRed;
    00141   unsigned short *ColorGreen;
    00142   unsigned short *ColorBlue;
    00143   int TotalColors;
    00144   unsigned int ImageFormat;
    00145   vtkTIFFReaderInternal *InternalImage;
    00146   int *InternalExtents;
    00147 };
    00148 #endif
    00149
    00150