Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TImagePlugin.h
Go to the documentation of this file.
1 // @(#)root/graf:$Id$
2 // Author: Valeriy Onuchin 23/06/05
3 
4 /*************************************************************************
5  * Copyright (C) 2001-2002, Rene Brun, Fons Rademakers and Reiner Rohlfs *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TImagePlugin
13 #define ROOT_TImagePlugin
14 
15 
16 #include "TObject.h"
17 
18 #include "TString.h"
19 
20 #include "TROOT.h"
21 
22 class TImagePlugin : public TObject {
23 
24 protected:
25  TString fExtension; ///< file extension
26 
27 public:
28  TImagePlugin(const char *ext) { fExtension = ext; }
29  virtual ~TImagePlugin()
30  {
31  // Required since we overload TObject::Hash.
32  ROOT::CallRecursiveRemoveIfNeeded(*this);
33  }
34 
35  virtual unsigned char *ReadFile(const char *filename, UInt_t &w, UInt_t &h) = 0;
36  virtual Bool_t WriteFile(const char *filename, unsigned char *argb, UInt_t w, UInt_t h) = 0;
37  ULong_t Hash() const { return fExtension.Hash(); }
38 
39  ClassDef(TImagePlugin, 0) // base class for different image format handlers(plugins)
40 };
41 
42 #endif