ImageJpg.h

Go to the documentation of this file.
00001 ////////////////////////////////////////////////////////////////////////////////
00002 //    Scorched3D (c) 2000-2009
00003 //
00004 //    This file is part of Scorched3D.
00005 //
00006 //    Scorched3D is free software; you can redistribute it and/or modify
00007 //    it under the terms of the GNU General Public License as published by
00008 //    the Free Software Foundation; either version 2 of the License, or
00009 //    (at your option) any later version.
00010 //
00011 //    Scorched3D is distributed in the hope that it will be useful,
00012 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014 //    GNU General Public License for more details.
00015 //
00016 //    You should have received a copy of the GNU General Public License
00017 //    along with Scorched3D; if not, write to the Free Software
00018 //    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 ////////////////////////////////////////////////////////////////////////////////
00020 
00021 #if !defined(AFX_ImageJpg_H__315BF771_5E56_4C78_9D9F_51608D8CB3F0__INCLUDED_)
00022 #define AFX_ImageJpg_H__315BF771_5E56_4C78_9D9F_51608D8CB3F0__INCLUDED_
00023 
00024 #include <image/Image.h>
00025 #include <net/NetBuffer.h>
00026 
00027 class ImageJpg : public Image
00028 {
00029 public:
00030         ImageJpg();
00031         virtual ~ImageJpg();
00032 
00033         virtual void removeOwnership() { owner_ = false; }
00034         virtual unsigned char *getBits() { return bits_; }
00035         virtual int getWidth() { return width_; }
00036         virtual int getHeight() { return height_; }
00037         virtual int getAlignment() { return 4; }
00038         virtual int getComponents() { return alpha_?4:3; }
00039 
00040         void clear();
00041 
00042         /**
00043         Overwrite the bitmap with the contents of the given file.
00044         If alpha is true then any black areas in the bitmap have full
00045         opacity.  When creating an alpha bitmap the bitmap is created
00046         in RGBA format, otherwise in RGB format.
00047         */
00048         bool loadFromFile(const char *filename, bool readalpha = false);
00049         bool loadFromFile(const char * filename, const char *alphafilename, bool invert);
00050         bool loadFromBuffer(NetBuffer &buffer, bool readalpha);
00051 
00052 protected:
00053         bool owner_;
00054         unsigned char *bits_;
00055         int width_;
00056         int height_;
00057         bool alpha_;
00058 
00059         void createBlankInternal(int width, int height, 
00060                 bool alpha = false, unsigned char fill = 255);
00061 
00062 private:
00063         ImageJpg(ImageJpg &other);
00064         ImageJpg &operator=(ImageJpg &other);
00065 };
00066 
00067 #endif // !defined(AFX_ImageJpg_H__315BF771_5E56_4C78_9D9F_51608D8CB3F0__INCLUDED_)

Generated on Mon Feb 16 15:14:50 2009 for Scorched3D by  doxygen 1.5.3