Picasso API  2.9
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  int32_t duration;
56 
60 typedef struct _psx_image {
62  int32_t width;
64  int32_t height;
66  int32_t 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 psx_result PICAPI psx_image_init(void);
140 
147 PEXPORT void PICAPI psx_image_shutdown(void);
148 
168  int32_t width, int32_t height, int32_t pitch, psx_result* err_code);
169 
182 PEXPORT psx_image* PICAPI psx_image_load(const char* file_name, psx_result* err_code);
183 
197 PEXPORT psx_image* PICAPI psx_image_load_from_memory(const ps_byte* data, size_t length, psx_result* err_code);
198 
202 typedef int32_t (*image_writer_fn)(void* param, const ps_byte* data, size_t length);
203 
218 PEXPORT psx_result PICAPI psx_image_save(const psx_image* image, image_writer_fn func,
219  void* param, const char* type, float quality);
220 
234 PEXPORT psx_result PICAPI psx_image_save_to_file(const psx_image* image, const char* file_name,
235  const char* type, float quality);
236 
245 PEXPORT void PICAPI psx_image_destroy(psx_image* image);
250 #ifdef __cplusplus
251 }
252 #endif
253 
254 #endif /*_PSX_IMAGE_DECODERS_H_*/
psx_result
psx_result
Status code return by call APIs.
Definition: picasso_ext.h:36
ps_image
struct _ps_image ps_image
An opaque type represents an image.
Definition: picasso.h:123
_psx_image_frame::data
ps_byte * data
Definition: psx_image.h:50
picasso.h
psx_image_load
PEXPORT psx_image *PICAPI psx_image_load(const char *file_name, psx_result *err_code)
Create a new psx_image object and load from file.
_psx_image::width
int32_t width
Definition: psx_image.h:62
psx_image_destroy
PEXPORT void PICAPI psx_image_destroy(psx_image *image)
Destroy the psx_image object and release resources.
image_writer_fn
int32_t(* image_writer_fn)(void *param, const ps_byte *data, size_t length)
Callback function for saving image data.
Definition: psx_image.h:202
psx_image_frame
struct _psx_image_frame psx_image_frame
A frame image data.
_psx_image_frame::duration
int32_t duration
Definition: psx_image.h:54
_psx_image::format
ps_color_format format
Definition: psx_image.h:68
psx_image_init
PEXPORT psx_result PICAPI psx_image_init(void)
Initialze the library and load resources.
picasso_ext.h
psx_image
struct _psx_image psx_image
A image object.
_psx_image::pitch
int32_t pitch
Definition: psx_image.h:66
psx_image_load_from_memory
PEXPORT psx_image *PICAPI psx_image_load_from_memory(const ps_byte *data, size_t length, psx_result *err_code)
Create a new psx_image object and load data from memory.
_psx_image
A image object.
Definition: psx_image.h:60
psx_image_save_to_file
PEXPORT psx_result 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::size
size_t size
Definition: psx_image.h:52
psx_image_shutdown
PEXPORT void PICAPI psx_image_shutdown(void)
Release resources and shutdown.
psx_image_save
PEXPORT psx_result 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.
_psx_image::height
int32_t height
Definition: psx_image.h:64
_psx_image_frame
A frame image data.
Definition: psx_image.h:46
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, int32_t width, int32_t height, int32_t pitch, psx_result *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
ps_color_format
enum _ps_color_format ps_color_format
Pixel formats of canvas or image.