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_)
1.5.3