00001 /* 00002 /-------------------------------------------------------------------- 00003 | 00004 | $Id: plfilter.h,v 1.3 2003/08/03 12:03:22 uzadow Exp $ 00005 | 00006 | Copyright (c) 1996-2002 Ulrich von Zadow 00007 | 00008 \-------------------------------------------------------------------- 00009 */ 00010 00011 #if !defined(AFX_FILTER_H__3CED06E1_1B40_11D3_B142_444553540000__INCLUDED_) 00012 #define AFX_FILTER_H__3CED06E1_1B40_11D3_B142_444553540000__INCLUDED_ 00013 00014 #if _MSC_VER >= 1000 00015 #pragma once 00016 #endif // _MSC_VER >= 1000 00017 00018 class PLBmp; 00019 00020 #ifndef AFX_PLOBJECT_H__E40881E3_C809_11D3_97BC_0050046F615E__INCLUDED_ 00021 #include "plobject.h" 00022 #endif 00023 00024 //! Base class for filters that operate on bitmaps. Derived classes need 00025 //! to override either the ApplyInPlace or the Apply function. The base-class 00026 //! versions of these functions simply implement one function in terms of the 00027 //! other. 00028 class PLFilter : public PLObject 00029 { 00030 public: 00031 //! 00032 PLFilter(); 00033 //! 00034 virtual ~PLFilter() = 0; 00035 00036 //! In-Place Apply. Applies the filter to pBmp. The base-class 00037 //! version copies the bitmap after calling Apply (pBmp, pTempBmp). 00038 virtual void ApplyInPlace(PLBmp * pBmp) const; 00039 00040 //! Applies the Filter to pBmpSource and stores the result in 00041 //! pBmpDest. The base-class version copies the bitmap before calling 00042 //! ApplyInPlace (pBmpDest). 00043 virtual void Apply(PLBmp * pBmpSource, PLBmp * pBmpDest) const; 00044 }; 00045 00046 #endif // !defined(AFX_FILTER_H__3CED06E1_1B40_11D3_B142_444553540000__INCLUDED_) 00047 00048 /* 00049 /-------------------------------------------------------------------- 00050 | 00051 | $Log: plfilter.h,v $ 00052 | Revision 1.3 2003/08/03 12:03:22 uzadow 00053 | Added unicode support; fixed some header includes. 00054 | 00055 | Revision 1.2 2002/03/03 16:59:26 uzadow 00056 | Changed PLFilter so it's pure virtual. 00057 | 00058 | Revision 1.1 2001/09/16 19:03:23 uzadow 00059 | Added global name prefix PL, changed most filenames. 00060 | 00061 | Revision 1.4 2001/01/15 15:05:31 uzadow 00062 | Added PLBmp::ApplyFilter() and PLBmp::CreateFilteredCopy() 00063 | 00064 | Revision 1.3 2000/01/16 20:43:15 anonymous 00065 | Removed MFC dependencies 00066 | 00067 | Revision 1.2 1999/11/27 18:45:48 Ulrich von Zadow 00068 | Added/Updated doc comments. 00069 | 00070 | Revision 1.1 1999/10/21 16:05:17 Ulrich von Zadow 00071 | Moved filters to separate directory. Added Crop, Grayscale and 00072 | GetAlpha filters. 00073 | 00074 | Revision 1.1 1999/10/19 21:29:44 Ulrich von Zadow 00075 | Added filters. 00076 | 00077 | 00078 \-------------------------------------------------------------------- 00079 */