#ifndef SPECTRE_GRAPHICS_IMAGE_H #define SPECTRE_GRAPHICS_IMAGE_H #include #include #include #include #include class Image { public : Image(); void create(unsigned width, unsigned height, const Color& color = Color::Black); void create(unsigned width, unsigned height, const void* pixels); void create(PixelFormat format, unsigned width, unsigned height, const Color& color = Color::Black); void create(PixelFormat format, unsigned width, unsigned height, const void* pixels); const Vector2u& getSize() const; unsigned int getWidth() const; unsigned int getHeight() const; unsigned int getBpp() const; unsigned int getStride() const; PixelFormat getFormat() const; // Returns true if the image has a alpha channel. bool hasAlpha() const; bool loadFromFile(const std::string& filename); bool loadFromMemory(const void *data, unsigned int size); void saveToFile(const std::string& filename) const; void setPixel(unsigned x, unsigned y, const Color& c); Color getPixel(unsigned x, unsigned y) const; void setPixels(const void* pixels); const unsigned char* getPixels() const; void flipY(); private : Vector2u m_size; PixelFormat m_format; std::vector m_pixels; }; #endif /* SPECTRE_GRAPHICS_IMAGE_H */