00001 /* 00002 /-------------------------------------------------------------------- 00003 | 00004 | $Id: pltiffenc.h,v 1.4 2002/02/24 13:00:41 uzadow Exp $ 00005 | 00006 | Copyright (c) 1996-2002 Ulrich von Zadow 00007 | 00008 \-------------------------------------------------------------------- 00009 */ 00010 00011 #ifndef INCL_PLTIFFENC 00012 #define INCL_PLTIFFENC 00013 00014 #ifndef INCL_PLPICENC 00015 #include "plpicenc.h" 00016 #endif 00017 00018 typedef struct tiff TIFF; 00019 00020 //! TIFF file encoder. Uses LIBTIFF to do the actual conversion. 00021 class PLTIFFEncoder : public PLPicEncoder 00022 { 00023 00024 public: 00025 //! Creates an encoder 00026 PLTIFFEncoder 00027 (); 00028 00029 //! Destroys a encoder 00030 virtual ~PLTIFFEncoder 00031 (); 00032 00033 void SetCompression (PLWORD Compression); 00034 00035 protected: 00036 //! Sets up LIBTIFF environment and calls LIBTIFF to encode an image. 00037 virtual void DoEncode 00038 ( PLBmp* pBmp, 00039 PLDataSink* pDataSnk 00040 ); 00041 00042 //! this one mostly useful for the "extended" decoder 00043 virtual void DoTiffEncode 00044 ( PLBmp* pBmp, 00045 TIFF* tif 00046 ); 00047 00048 //! According to the characteristics of the given bitmap, 00049 //! set the baseline tags 00050 int SetBaseTags( TIFF*, PLBmp* ); 00051 00052 //! Set tag value in directory; also, "pseudo-tags" are interpreted by 00053 //! LIBTIFF as modifiers to certain algorithms (compression....). 00054 //! We do _not_ support multiple images by file, nor tiling nor stripping. 00055 int SetField( TIFF*, int tag_id, ... ); 00056 00057 private: 00058 PLWORD m_Compression; 00059 }; 00060 00061 #endif 00062 00063 /* 00064 /-------------------------------------------------------------------- 00065 | 00066 | $Log: pltiffenc.h,v $ 00067 | Revision 1.4 2002/02/24 13:00:41 uzadow 00068 | Documentation update; removed buggy PLFilterRotate. 00069 | 00070 | Revision 1.3 2001/10/06 22:03:26 uzadow 00071 | Added PL prefix to basic data types. 00072 | 00073 | Revision 1.2 2001/10/06 20:44:45 uzadow 00074 | Linux compatibility 00075 | 00076 | Revision 1.1 2001/09/16 19:03:22 uzadow 00077 | Added global name prefix PL, changed most filenames. 00078 | 00079 | Revision 1.7 2001/09/13 20:43:02 uzadow 00080 | Added tiff compression support. 00081 | 00082 | Revision 1.6 2000/01/16 20:43:15 anonymous 00083 | Removed MFC dependencies 00084 | 00085 | Revision 1.5 1999/12/02 17:07:34 Ulrich von Zadow 00086 | Changes by bdelmee. 00087 | 00088 | 00089 \-------------------------------------------------------------------- 00090 */