SFML logo
  • Main Page
  • Modules
  • Classes
  • Files
  • File List

Image.hpp

00001 
00002 //
00003 // SFML - Simple and Fast Multimedia Library
00004 // Copyright (C) 2007-2009 Laurent Gomila (laurent.gom@gmail.com)
00005 //
00006 // This software is provided 'as-is', without any express or implied warranty.
00007 // In no event will the authors be held liable for any damages arising from the use of this software.
00008 //
00009 // Permission is granted to anyone to use this software for any purpose,
00010 // including commercial applications, and to alter it and redistribute it freely,
00011 // subject to the following restrictions:
00012 //
00013 // 1. The origin of this software must not be misrepresented;
00014 //    you must not claim that you wrote the original software.
00015 //    If you use this software in a product, an acknowledgment
00016 //    in the product documentation would be appreciated but is not required.
00017 //
00018 // 2. Altered source versions must be plainly marked as such,
00019 //    and must not be misrepresented as being the original software.
00020 //
00021 // 3. This notice may not be removed or altered from any source distribution.
00022 //
00024 
00025 #ifndef SFML_IMAGE_HPP
00026 #define SFML_IMAGE_HPP
00027 
00029 // Headers
00031 #include <SFML/Graphics/Color.hpp>
00032 #include <SFML/Graphics/Rect.hpp>
00033 #include <string>
00034 #include <vector>
00035 
00036 
00037 namespace sf
00038 {
00039 class InputStream;
00040 
00045 class SFML_API Image
00046 {
00047 public :
00048 
00055     Image();
00056 
00065     void Create(unsigned int width, unsigned int height, const Color& color = Color(0, 0, 0));
00066 
00080     void Create(unsigned int width, unsigned int height, const Uint8* pixels);
00081 
00097     bool LoadFromFile(const std::string& filename);
00098 
00115     bool LoadFromMemory(const void* data, std::size_t size);
00116 
00132     bool LoadFromStream(InputStream& stream);
00133 
00149     bool SaveToFile(const std::string& filename) const;
00150 
00159     unsigned int GetWidth() const;
00160 
00169     unsigned int GetHeight() const;
00170 
00182     void CreateMaskFromColor(const Color& color, Uint8 alpha = 0);
00183 
00204     void Copy(const Image& source, unsigned int destX, unsigned int destY, const IntRect& sourceRect = IntRect(0, 0, 0, 0), bool applyAlpha = false);
00205 
00220     void SetPixel(unsigned int x, unsigned int y, const Color& color);
00221 
00235     Color GetPixel(unsigned int x, unsigned int y) const;
00236 
00250     const Uint8* GetPixelsPtr() const;
00251 
00256     void FlipHorizontally();
00257 
00262     void FlipVertically();
00263 
00264 private :
00265 
00267     // Member data
00269     unsigned int       myWidth;  
00270     unsigned int       myHeight; 
00271     std::vector<Uint8> myPixels; 
00272 };
00273 
00274 } // namespace sf
00275 
00276 
00277 #endif // SFML_IMAGE_HPP
00278 
00279 

 ::  Copyright © 2007-2008 Laurent Gomila, all rights reserved  ::  Documentation generated by doxygen 1.5.2  ::