00001 /* 00002 /-------------------------------------------------------------------- 00003 | 00004 | $Id: plfilterresizebilinear.cpp,v 1.1 2004/05/21 21:02:53 maxx Exp $ 00005 | 00006 | Copyright (c) 1996-1998 Ulrich von Zadow 00007 | 00008 \-------------------------------------------------------------------- 00009 */ 00010 00011 #include "plstdpch.h" 00012 #include "plfilterresizebilinear.h" 00013 #include "pl2passscale.h" 00014 #include "plbitmap.h" 00015 00016 00017 PLFilterResizeBilinear::PLFilterResizeBilinear (int NewXSize, int NewYSize) 00018 : PLFilterResize (NewXSize, NewYSize) 00019 { 00020 } 00021 00022 void PLFilterResizeBilinear::Apply(PLBmp * pBmpSource, PLBmp * pBmpDest) const 00023 { 00024 PLASSERT(pBmpSource->GetBitsPerPixel()==32); 00025 00026 // Create a new Bitmap 00027 pBmpDest->Create(m_NewXSize, 00028 m_NewYSize, 00029 pBmpSource->GetBitsPerPixel(), 00030 pBmpSource->HasAlpha(), 00031 pBmpSource->GetResolution()); 00032 00033 // Create a Filter Class from template 00034 PLBilinearContribDef f(0.64); 00035 C2PassScale <CDataRGBA_UBYTE> sS(f); 00036 sS.Scale ((CDataRGBA_UBYTE::_RowType *) pBmpSource->GetLineArray(), 00037 pBmpSource->GetWidth(), 00038 pBmpSource->GetHeight(), 00039 (CDataRGBA_UBYTE::_RowType *) pBmpDest->GetLineArray(), 00040 pBmpDest->GetWidth(), 00041 pBmpDest->GetHeight()); 00042 } 00043 00044 /* 00045 /-------------------------------------------------------------------- 00046 | 00047 | $Log: plfilterresizebilinear.cpp,v $ 00048 | Revision 1.1 2004/05/21 21:02:53 maxx 00049 | Initial Version of vuVolume, moderatly changed to make it compile on my windows and linux machine. 00050 | 00051 | Revision 1.1 2002/11/13 01:59:48 mspindle 00052 | *** empty log message *** 00053 | 00054 | Revision 1.5 2001/10/16 17:12:27 uzadow 00055 | Added support for resolution information (Luca Piergentili) 00056 | 00057 | Revision 1.4 2001/10/03 14:00:29 uzadow 00058 | Much improved quality in FilterResizeBilinear. 00059 | 00060 | Revision 1.3 2001/09/30 16:57:25 uzadow 00061 | Improved speed of 2passfilter.h, code readability changes. 00062 | 00063 | Revision 1.2 2001/09/16 20:57:17 uzadow 00064 | Linux version name prefix changes 00065 | 00066 | Revision 1.1 2001/09/16 19:03:23 uzadow 00067 | Added global name prefix PL, changed most filenames. 00068 | 00069 | Revision 1.5 2001/01/15 15:05:31 uzadow 00070 | Added PLBmp::ApplyFilter() and PLBmp::CreateFilteredCopy() 00071 | 00072 | Revision 1.4 2000/01/16 20:43:15 anonymous 00073 | Removed MFC dependencies 00074 | 00075 | Revision 1.3 1999/12/08 16:31:40 Ulrich von Zadow 00076 | Unix compatibility 00077 | 00078 | Revision 1.2 1999/12/08 15:39:46 Ulrich von Zadow 00079 | Unix compatibility changes 00080 | 00081 | Revision 1.1 1999/10/21 16:05:18 Ulrich von Zadow 00082 | Moved filters to separate directory. Added Crop, Grayscale and 00083 | GetAlpha filters. 00084 | 00085 | Revision 1.1 1999/10/19 21:29:45 Ulrich von Zadow 00086 | Added filters. 00087 | 00088 | 00089 \-------------------------------------------------------------------- 00090 */