gKit2 light
image_io.h
Go to the documentation of this file.
1 
2 #ifndef _IMAGE_IO_H
3 #define _IMAGE_IO_H
4 
5 #ifdef GK_MACOS
6 #include <SDL2_image/SDL_surface.h>
7 #else
8 #include <SDL2/SDL_surface.h>
9 #endif
10 
11 #include "image.h"
12 
13 
16 
19 
22 Image read_image( const char *filename );
23 
25 int write_image( const Image& image, const char *filename );
26 
28 Image flipY( const Image& image );
30 Image flipX( const Image& image );
31 
33 Image copy( const Image& image, const int xmin, const int ymin, const int width, const int height );
34 
35 
37 struct ImageData
38 {
39  ImageData( ) : pixels(), width(0), height(0), channels(0), size(0) {}
40  ImageData( const int w, const int h, const int c, const int s= 1 ) : pixels(w*h*c*s, 0), width(w), height(h), channels(c), size(s) {}
41 
42  size_t offset( const int x, const int y, const int c= 0 ) const { return (y * width +x) * channels * size + c * size; }
43  const void *data( ) const { return pixels.data(); }
44  void *data( ) { return pixels.data(); }
45 
46  std::vector<unsigned char> pixels;
47 
48  int width;
49  int height;
50  int channels;
51  int size;
52 };
53 
55 ImageData image_data( SDL_Surface *surface );
56 
58 ImageData read_image_data( const char *filename );
59 
61 int write_image_data( ImageData& image, const char *filename );
62 
64 ImageData flipY( const ImageData& image );
66 ImageData flipX( const ImageData& image );
67 
69 ImageData copy( const ImageData& image, const int xmin, const int ymin, const int width, const int height );
70 
72 ImageData downscale( const ImageData& image );
73 
75 Image downscale( const Image& image );
76 
78 Image srgb( const Image& image );
79 
81 Image linear( const Image& image );
82 
84 
85 #endif
representation d'une image.
Definition: image.h:21
ImageData read_image_data(const char *filename)
charge les donnees d'un fichier png. renvoie une image initialisee par defaut en cas d'echec.
Definition: image_io.cpp:216
int write_image_data(ImageData &image, const char *filename)
enregistre des donnees dans un fichier png.
Definition: image_io.cpp:229
ImageData image_data(SDL_Surface *surface)
converti une surface SDL en imageData, cf RWops pour charger les images deja en memoire.
Definition: image_io.cpp:141
int write_image(const Image &image, const char *filename)
enregistre une image dans un fichier png.
Definition: image_io.cpp:85
Image flipY(const Image &image)
retourne l'image
Definition: image_io.cpp:295
Image flipX(const Image &image)
retourne l'image
Definition: image_io.cpp:312
Image copy(const Image &image, const int xmin, const int ymin, const int width, const int height)
renvoie un bloc de l'image
Definition: image_io.cpp:328
Image linear(const Image &image)
conversion de srgb vers rgb lineaire. necessaire pour les images couleurs.
Definition: image_io.cpp:440
ImageData downscale(const ImageData &image)
renvoie une image filtree plus petite.
Definition: image_io.cpp:397
Image read_image(const char *filename)
Definition: image_io.cpp:18
Image srgb(const Image &image)
conversion de rgb lineaire vers srgb.
Definition: image_io.cpp:429
stockage temporaire des donnees d'une image.
Definition: image_io.h:38