|
| Image ()=default |
| Default constructor.
|
| Image (Vector2u size, Color color=Color::Black) |
| Construct the image and fill it with a unique color.
|
| Image (Vector2u size, const std::uint8_t *pixels) |
| Construct the image from an array of pixels.
|
| Image (const std::filesystem::path &filename) |
| Construct the image from a file on disk.
|
| Image (const void *data, std::size_t size) |
| Construct the image from a file in memory.
|
| Image (InputStream &stream) |
| Construct the image from a custom stream.
|
void | resize (Vector2u size, Color color=Color::Black) |
| Resize the image and fill it with a unique color.
|
void | resize (Vector2u size, const std::uint8_t *pixels) |
| Resize the image from an array of pixels.
|
bool | loadFromFile (const std::filesystem::path &filename) |
| Load the image from a file on disk.
|
bool | loadFromMemory (const void *data, std::size_t size) |
| Load the image from a file in memory.
|
bool | loadFromStream (InputStream &stream) |
| Load the image from a custom stream.
|
bool | saveToFile (const std::filesystem::path &filename) const |
| Save the image to a file on disk.
|
std::optional< std::vector< std::uint8_t > > | saveToMemory (std::string_view format) const |
| Save the image to a buffer in memory.
|
Vector2u | getSize () const |
| Return the size (width and height) of the image.
|
void | createMaskFromColor (Color color, std::uint8_t alpha=0) |
| Create a transparency mask from a specified color-key.
|
bool | copy (const Image &source, Vector2u dest, const IntRect &sourceRect={}, bool applyAlpha=false) |
| Copy pixels from another image onto this one.
|
void | setPixel (Vector2u coords, Color color) |
| Change the color of a pixel.
|
Color | getPixel (Vector2u coords) const |
| Get the color of a pixel.
|
const std::uint8_t * | getPixelsPtr () const |
| Get a read-only pointer to the array of pixels.
|
void | flipHorizontally () |
| Flip the image horizontally (left <-> right)
|
void | flipVertically () |
| Flip the image vertically (top <-> bottom)
|
Class for loading, manipulating and saving images.
sf::Image is an abstraction to manipulate images as bi-dimensional arrays of pixels.
The class provides functions to load, read, write and save pixels, as well as many other useful functions.
sf::Image can handle a unique internal representation of pixels, which is RGBA 32 bits. This means that a pixel must be composed of 8 bit red, green, blue and alpha channels – just like a sf::Color. All the functions that return an array of pixels follow this rule, and all parameters that you pass to sf::Image functions (such as loadFromMemory) must use this representation as well.
A sf::Image can be copied, but it is a heavy resource and if possible you should always use [const] references to pass or return them to avoid useless copies.
Usage example:
const sf::Image background(
"background.jpg");
if (!image.copy(background, {10, 10}))
return -1;
image.setPixel({0, 0}, color);
if (!image.saveToFile("result.png"))
return -1;
Utility class for manipulating RGBA colors.
std::uint8_t a
Alpha (opacity) component.
static const Color Black
Black predefined color.
Class for loading, manipulating and saving images.
- See also
- sf::Texture
Definition at line 54 of file Image.hpp.
bool sf::Image::copy |
( |
const Image & | source, |
|
|
Vector2u | dest, |
|
|
const IntRect & | sourceRect = {}, |
|
|
bool | applyAlpha = false ) |
|
nodiscard |
Copy pixels from another image onto this one.
This function does a slow pixel copy and should not be used intensively. It can be used to prepare a complex static image from several others, but if you need this kind of feature in real-time you'd better use sf::RenderTexture.
If sourceRect is empty, the whole image is copied. If applyAlpha is set to true, alpha blending is applied from the source pixels to the destination pixels using the over operator. If it is false, the source pixels are copied unchanged with their alpha value.
See https://en.wikipedia.org/wiki/Alpha_compositing for details on the over operator.
Note that this function can fail if either image is invalid (i.e. zero-sized width or height), or if sourceRect is not within the boundaries of the source parameter, or if the destination area is out of the boundaries of this image.
On failure, the destination image is left unchanged.
- Parameters
-
source | Source image to copy |
dest | Coordinates of the destination position |
sourceRect | Sub-rectangle of the source image to copy |
applyAlpha | Should the copy take into account the source transparency? |
- Returns
- true if the operation was successful, false otherwise
bool sf::Image::loadFromFile |
( |
const std::filesystem::path & | filename | ) |
|
|
nodiscard |
Load the image from a file on disk.
The supported image formats are bmp, png, tga, jpg, gif, psd, hdr, pic and pnm. Some format options are not supported, like jpeg with arithmetic coding or ASCII pnm. If this function fails, the image is left unchanged.
- Parameters
-
filename | Path of the image file to load |
- Returns
- true if loading was successful
- See also
- loadFromMemory, loadFromStream, saveToFile
bool sf::Image::loadFromMemory |
( |
const void * | data, |
|
|
std::size_t | size ) |
|
nodiscard |
Load the image from a file in memory.
The supported image formats are bmp, png, tga, jpg, gif, psd, hdr, pic and pnm. Some format options are not supported, like jpeg with arithmetic coding or ASCII pnm. If this function fails, the image is left unchanged.
- Parameters
-
data | Pointer to the file data in memory |
size | Size of the data to load, in bytes |
- Returns
- true if loading was successful
- See also
- loadFromFile, loadFromStream, saveToMemory
Load the image from a custom stream.
The supported image formats are bmp, png, tga, jpg, gif, psd, hdr, pic and pnm. Some format options are not supported, like jpeg with arithmetic coding or ASCII pnm. If this function fails, the image is left unchanged.
- Parameters
-
stream | Source stream to read from |
- Returns
- true if loading was successful
- See also
- loadFromFile, loadFromMemory