Picasso API  2.8
psx_image.h
Go to the documentation of this file.
1 
18 #ifndef _PSX_IMAGE_DECODERS_H_
19 #define _PSX_IMAGE_DECODERS_H_
20 
21 #include "picasso.h"
22 #include "picasso_ext.h"
23 
24 #include <stddef.h>
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
46 typedef struct _psx_image_frame {
52  size_t size;
54  int duration;
56 
60 typedef struct _psx_image {
62  int width;
64  int height;
66  int pitch;
72  size_t num_frames;
73 } psx_image;
74 
80 #define IMG_OBJ(image) IMG_OBJ_AT_INDEX(image, 0)
81 
87 #define IMG_DATA(image) IMG_DATA_AT_INDEX(image, 0)
88 
94 #define IMG_DATA_SIZE(image) IMG_DATA_SIZE_AT_INDEX(image, 0)
95 
101 #define IMG_OBJ_AT_INDEX(image, idx) (image->frames[idx].img)
102 
108 #define IMG_DATA_AT_INDEX(image, idx) (image->frames[idx].data)
109 
115 #define IMG_DATA_SIZE_AT_INDEX(img, idx) (img->frames[idx].size)
116 
122 #define IMG_DURATION_AT_INDEX(img, idx) (img->frames[idx].duration)
123 
139 PEXPORT int PICAPI psx_image_init(void);
140 
149 PEXPORT int PICAPI psx_image_shutdown(void);
150 
170  int width, int height, int pitch, int* err_code);
171 
184 PEXPORT psx_image* PICAPI psx_image_load(const char* file_name, int* err_code);
185 
199 PEXPORT psx_image* PICAPI psx_image_load_from_memory(const ps_byte* data, size_t length, int* err_code);
200 
204 typedef int (*image_writer_fn)(void* param, const ps_byte* data, size_t length);
205 
220 PEXPORT int PICAPI psx_image_save(const psx_image* image, image_writer_fn func,
221  void* param, const char* type, float quality);
222 
236 PEXPORT int PICAPI psx_image_save_to_file(const psx_image* image, const char* file_name,
237  const char* type, float quality);
238 
249 PEXPORT int PICAPI psx_image_destroy(psx_image* image);
254 #ifdef __cplusplus
255 }
256 #endif
257 
258 #endif /*_PSX_IMAGE_DECODERS_H_*/
image_writer_fn
int(* image_writer_fn)(void *param, const ps_byte *data, size_t length)
Callback function for saving image data.
Definition: psx_image.h:204
ps_image
struct _ps_image ps_image
An opaque type represents an image.
Definition: picasso.h:123
psx_image_save_to_file
PEXPORT int PICAPI psx_image_save_to_file(const psx_image *image, const char *file_name, const char *type, float quality)
Encoding psx_image to a gaving format and output to a file.
_psx_image_frame::data
ps_byte * data
Definition: psx_image.h:50
picasso.h
_psx_image::height
int height
Definition: psx_image.h:64
_psx_image_frame::duration
int duration
Definition: psx_image.h:54
psx_image_destroy
PEXPORT int PICAPI psx_image_destroy(psx_image *image)
Destroy the psx_image object and release resources.
psx_image_frame
struct _psx_image_frame psx_image_frame
A frame image data.
_psx_image::format
ps_color_format format
Definition: psx_image.h:68
picasso_ext.h
psx_image
struct _psx_image psx_image
A image object.
_psx_image::width
int width
Definition: psx_image.h:62
_psx_image::pitch
int pitch
Definition: psx_image.h:66
psx_image_init
PEXPORT int PICAPI psx_image_init(void)
Initialze the library and load resources.
_psx_image
A image object.
Definition: psx_image.h:60
psx_image_shutdown
PEXPORT int PICAPI psx_image_shutdown(void)
Release resources and shutdoen.
psx_image_load
PEXPORT psx_image *PICAPI psx_image_load(const char *file_name, int *err_code)
Create a new psx_image object and load from file.
_psx_image_frame::size
size_t size
Definition: psx_image.h:52
_psx_image_frame
A frame image data.
Definition: psx_image.h:46
psx_image_save
PEXPORT int PICAPI psx_image_save(const psx_image *image, image_writer_fn func, void *param, const char *type, float quality)
Encoding psx_image to a gaving format and output it.
ps_byte
uint8_t ps_byte
byte data type
Definition: picasso.h:95
psx_image_create_from_data
PEXPORT psx_image *PICAPI psx_image_create_from_data(ps_byte *data, ps_color_format fmt, int width, int height, int pitch, int *err_code)
Create a new psx_image using a copy of given address in memory.
_psx_image_frame::img
ps_image * img
Definition: psx_image.h:48
_psx_image::num_frames
size_t num_frames
Definition: psx_image.h:72
_psx_image::frames
psx_image_frame * frames
Definition: psx_image.h:70
psx_image_load_from_memory
PEXPORT psx_image *PICAPI psx_image_load_from_memory(const ps_byte *data, size_t length, int *err_code)
Create a new psx_image object and load data from memory.
ps_color_format
enum _ps_color_format ps_color_format
Pixel formats of canvas or image.