2018-10-21 19:42:58 +00:00
|
|
|
|
/**
|
|
|
|
|
* \file ppm.h
|
|
|
|
|
* \brief Fichier d'en-tête pour les fonctions de manipulation d'images ppm
|
|
|
|
|
*
|
|
|
|
|
* En-tête contenant la déclaration de fonctions de lecture et d'écriture de
|
|
|
|
|
* fichiers au format ppm. La définition des fonction se trouve dans \ref ppm.c
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2018-11-24 20:58:55 +00:00
|
|
|
|
#ifndef SRC_PPM_H_
|
|
|
|
|
#define SRC_PPM_H_
|
2018-10-21 19:42:58 +00:00
|
|
|
|
|
|
|
|
|
#include "utilities.h"
|
|
|
|
|
|
|
|
|
|
/// \brief Ouvre un fichier avec les autorisations demandées
|
2018-11-24 21:41:29 +00:00
|
|
|
|
FILE *get_file(const char *t_filename, const char *t_mode);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Lit le format d’un fichier ppm ouvert
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void read_file_format(FILE *t_fp, const char *t_filename);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Vérifie et ignore d’éventuels commentaires du header d’un fichier
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void check_for_comments(FILE *t_fp);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Lit les dimensions du fichier ppm ouvert
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void read_file_size(FILE *t_fp, Image *t_img, const char *t_filename);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Lit et vérifie le format RGB du fichier ppm
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void read_rgb(FILE *t_fp, const char *t_filename);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Lit dans le conteneur les données images du fichier ppm
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void read_data(FILE *t_fp, uint64_t t_size, uint8_t **t_data,
|
|
|
|
|
const char *t_filename);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Convertit les données brutes de fichier vers des conteneurs de pixels
|
2018-11-24 21:41:29 +00:00
|
|
|
|
void dataToImage(Image *t_img, uint8_t *t_data, uint64_t t_size);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Convertit les pixels d’une image en tableau natif OpenGL
|
2018-11-24 21:41:29 +00:00
|
|
|
|
unsigned char *imageToData(Image *t_img);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Ouverture et lecture de l’image d’entrée
|
2018-11-24 21:41:29 +00:00
|
|
|
|
int imageLoadPPM(const char *t_filename, Image *t_img);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
/// \brief Ouverture et écriture de l'image de sortie
|
2018-11-26 01:28:15 +00:00
|
|
|
|
void imageSavePPM(const char *t_filename, Image *t_img, uint8_t *data);
|
2018-10-21 19:42:58 +00:00
|
|
|
|
|
2018-11-24 20:58:55 +00:00
|
|
|
|
#endif /* SRC_PPM_H_ */
|