libimage  0.25.4
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Énumérations Macros Pages
Fonctions membres publiques | Fonctions membres publiques statiques | Fonctions membres protégées | Fonctions membres privées | Attributs privés | Amis | Liste de tous les membres
Référence de la classe BilzImage

Manipulation d'une image PNG. Plus de détails...

#include <BilzImage.h>

Graphe d'héritage de BilzImage:
Inheritance graph
Graphe de collaboration de BilzImage:
Collaboration graph

Fonctions membres publiques

int getline (uint8_t *buffer, int line)
 Retourne une ligne en entier 8 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 8 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 4 "cases" sur 8 bits).
int getline (uint16_t *buffer, int line)
 Retourne une ligne en entier 16 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 16 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 2 "cases" sur 16 bits).
int getline (float *buffer, int line)
 Retourne une ligne en flottant 32 bits. Les canaux sont entrelacés. Si les données ne sont pas intrinsèquement codées sur des flottants 32 bits, une conversion est effectuée.
int writeImage (Image *pIn)
 Ecrit une image (Z)BIL, à partir d'une image source.
int writeImage (uint8_t *buffer)
 Ecrit une image (Z)BIL, à partir d'un buffer d'entiers.
int writeImage (uint16_t *buffer)
 Ecrit une image (Z)BIL, à partir d'un buffer d'entiers.
int writeImage (float *buffer)
 Ecrit une image (Z)BIL, à partir d'un buffer de flottants.
int writeLine (uint8_t *buffer, int line)
 Ecrit une ligne d'image (Z)BIL, à partir d'un buffer d'entiers.
int writeLine (uint16_t *buffer, int line)
 Ecrit une ligne d'image (Z)BIL, à partir d'un buffer de flottants.
int writeLine (float *buffer, int line)
 Ecrit une ligne d'image (Z)BIL, à partir d'un buffer de flottants.
 ~BilzImage ()
 Destructeur par défaut.
void print ()
 Sortie des informations sur l'image (Z)BIL.
- Fonctions membres publiques inherited from FileImage
void unassociateAlpha (uint8_t *buffer)
 Désassocie le canal alpha.
char * getFilename ()
 Retourne le chemin du fichier image.
int getBitsPerSample ()
 Retourne le nombre de bits par canal.
Photometric::ePhotometric getPhotometric ()
 Retourne la photométrie des données image (rgb, gray...)
ExtraSample::eExtraSample getExtraSample ()
 Retourne le type du canal supplémentaire.
void setExtraSample (ExtraSample::eExtraSample es)
 Modifie le type du canal supplémentaire.
Compression::eCompression getCompression ()
 Retourne la compression des données.
SampleFormat::eSampleFormat getSampleFormat ()
 Retourne le format des canaux (entier, flottant)
int getPixelSize ()
 Retourne la taille en octet d'un pixel.
 ~FileImage ()
 Destructeur par défaut.
- Fonctions membres publiques inherited from Image
void makeMask ()
 Définit l'image comme un masque.
int getWidth ()
 Retourne la largeur en pixel de l'image.
int getHeight ()
 Retourne la hauteur en pixel de l'image.
void setBbox (BoundingBox< double > box)
 Définit l'emprise rectangulaire de l'image et calcule les résolutions.
bool setDimensions (int w, int h, BoundingBox< double > box, double rx, double ry)
 Définit les dimensions de l'image, en vérifiant leurs cohérences.
BoundingBox< double > getBbox () const
 Retourne l'emprise rectangulaire de l'image.
void setCRS (CRS srs)
 Définit le SRS de l'emprise rectangulaire.
CRS getCRS () const
 Retourne le SRS de l'emprise rectangulaire de l'image.
double getXmin () const
 Retourne le xmin de l'emprise rectangulaire.
double getYmax () const
 Retourne le ymax de l'emprise rectangulaire.
double getXmax () const
 Retourne le xmax de l'emprise rectangulaire.
double getYmin () const
 Retourne le ymin de l'emprise rectangulaire.
double getResX () const
 Retourne la résolution dans le sens des X.
double getResY () const
 Retourne la résolution dans le sens des Y.
ImagegetMask ()
 Retourne le masque de donnée associé à l'image.
bool setMask (Image *newMask)
 Définit le masque de donnée et contrôle la cohérence avec l'image.
int x2c (double x)
 Conversion de l'abscisse terrain vers l'indice de colonne dans l'image.
int y2l (double y)
 Conversion de l'ordonnée terrain vers l'indice de ligne dans l'image.
double c2x (int c)
 Conversion de l'indice de colonne dans l'image vers l'abscisse terrain du centre du pixel.
double l2y (int l)
 Conversion de l'indice de ligne dans l'image vers l'ordonnée terrain du centre du pixel.
double getPhaseX ()
 Calcul de la phase dans le sens des X.
double getPhaseY ()
 Calcul de la phase dans le sens des Y.
bool isCompatibleWith (Image *pImage)
 Détermine la compatibilité avec une autre image, en comparant phases et résolutions.
 Image (int width, int height, int channels, double resx, double resy, BoundingBox< double > bbox)
 Crée un objet Image à partir de tous ses éléments constitutifs.
 Image (int width, int height, int channels)
 Crée une Image sans préciser de géoréférencement, ni résolutions, ni rectangle englobant.
 Image (int width, int height, int channels, BoundingBox< double > bbox)
 Crée une Image sans préciser les résolutions.
 Image (int width, int height, int channels, double resx, double resy)
 Crée un objet Image sans préciser le rectangle englobant.
virtual ~Image ()
 Destructeur par défaut.
virtual void printTFW ()
 Sortie du tfw de l'image.

Fonctions membres publiques statiques

static bool canRead (int bps, SampleFormat::eSampleFormat sf)
static bool canWrite (int bps, SampleFormat::eSampleFormat sf)

Fonctions membres protégées

 BilzImage (int width, int height, double resx, double resy, int channels, BoundingBox< double > bbox, char *name, SampleFormat::eSampleFormat sampleformat, int bitspersample, Photometric::ePhotometric photometric, Compression::eCompression compression, uint8_t *bilData)
 Crée un objet BilzImage à partir de tous ses éléments constitutifs.
- Fonctions membres protégées inherited from FileImage
 FileImage (int width, int height, double resx, double resy, int channels, BoundingBox< double > bbox, char *name, SampleFormat::eSampleFormat sampleformat, int bitspersample, Photometric::ePhotometric photometric, Compression::eCompression compression, ExtraSample::eExtraSample esType=ExtraSample::ALPHA_UNASSOC)
 Crée un objet FileImage à partir de tous ses éléments constitutifs.
- Fonctions membres protégées inherited from Image
void computeResolutions ()
 Calcul des resolutions en x et en y, calculées à partir des dimensions et de la bouding box.

Fonctions membres privées

int _getline (uint8_t *buffer, int line)
 Calcule la ligne entrelacée.

Attributs privés

uint8_t * data
 Stockage de l'image entière, décompressée.
uint8_t * tmpbuffer
 Buffer temporaire, utilisé pour entrelacé les canaux.

Amis

class BilzImageFactory

Additional Inherited Members

- Attributs publics inherited from Image
const int channels
 Nombre de canaux de l'image.
- Attributs protégés inherited from FileImage
char * filename
 Chemin du fichier image.
Photometric::ePhotometric photometric
 Photométrie des données (rgb, gray...)
ExtraSample::eExtraSample esType
 type de l'éventuel canal supplémentaire
Compression::eCompression compression
 Compression des données (jpeg, packbits...)
SampleFormat::eSampleFormat sampleformat
 Format des canaux.
int bitspersample
 Nombre de bits par canal.
int pixelSize
 Taille d'un pixel en octet.

Description détaillée

Manipulation d'une image PNG.

Auteur
Institut national de l'information géographique et forestière

Une image (Z)bil est une vraie image dans ce sens où elle est rattachée à un fichier, pour la lecture de données au format bil, potentiellement compressées.

Lors de la lecture des données, si celles ci sont moins volumineuses qu'elles ne devraient l'être, on estime alors qu'elles sont compressées en deflate (zip). La décompression est alors automatiquement essayée.

A faire:
Lire au fur et à mesure l'image BIL et ne pas la charger intégralement en mémoire lors de la création de l'objet BilzImage.

Documentation des constructeurs et destructeur

BilzImage::BilzImage ( int  width,
int  height,
double  resx,
double  resy,
int  channels,
BoundingBox< double >  bbox,
char *  name,
SampleFormat::eSampleFormat  sampleformat,
int  bitspersample,
Photometric::ePhotometric  photometric,
Compression::eCompression  compression,
uint8_t *  bilData 
)
protected

Crée un objet BilzImage à partir de tous ses éléments constitutifs.

Ce constructeur est protégé afin de n'être appelé que par l'usine BilzImageFactory, qui fera différents tests et calculs.

Paramètres
[in]widthlargeur de l'image en pixel
[in]heighthauteur de l'image en pixel
[in]resxrésolution dans le sens des X
[in]resyrésolution dans le sens des Y
[in]channelnombre de canaux par pixel
[in]bboxemprise rectangulaire de l'image
[in]namechemin du fichier image
[in]sampleformatformat des canaux
[in]bitspersamplenombre de bits par canal
[in]photometricphotométrie des données
[in]compressioncompression des données
[in]bilDataimage complète, dans un tableau
BilzImage::~BilzImage ( )
inline

Destructeur par défaut.

Suppression du buffer de lecture #row_pointers

Documentation des fonctions membres

int BilzImage::_getline ( uint8_t *  buffer,
int  line 
)
private

Calcule la ligne entrelacée.

Au format BIL, les différents canaux sont regroupés, par ligne. On doit donc convertir pour renvoyer une ligne aux canaux entralés.

Schéma

Paramètres
[in]widthbuffer de sortie, doit être alloué
[in]lineligne à calculer

Voici le graphe des appelants de cette fonction :

int BilzImage::getline ( uint8_t *  buffer,
int  line 
)
virtual

Retourne une ligne en entier 8 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 8 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 4 "cases" sur 8 bits).

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels * sizeof(sample)' entier sur 8 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémente FileImage.

Voici le graphe d'appel pour cette fonction :

int BilzImage::getline ( uint16_t *  buffer,
int  line 
)
virtual

Retourne une ligne en entier 16 bits. Les canaux sont entrelacés. ATTENTION : si les données ne sont pas intrinsèquement codées sur des entiers 16 bits, il n'y a pas de conversion (une valeur sur 32 bits occupera 2 "cases" sur 16 bits).

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels * sizeof(sample) * 2' entier sur 16 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémente FileImage.

Voici le graphe d'appel pour cette fonction :

int BilzImage::getline ( float *  buffer,
int  line 
)
virtual

Retourne une ligne en flottant 32 bits. Les canaux sont entrelacés. Si les données ne sont pas intrinsèquement codées sur des flottants 32 bits, une conversion est effectuée.

Paramètres
[in,out]bufferTableau contenant au moins 'width * channels' flottant sur 32 bits
[in]lineIndice de la ligne à retourner (0 <= line < height)
Renvoie
taille utile du buffer, 0 si erreur

Implémente FileImage.

Voici le graphe d'appel pour cette fonction :

int BilzImage::writeImage ( Image pIn)
inlinevirtual

Ecrit une image (Z)BIL, à partir d'une image source.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]pInsource des donnée de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeImage ( uint8_t *  buffer)
inlinevirtual

Ecrit une image (Z)BIL, à partir d'un buffer d'entiers.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeImage ( uint16_t *  buffer)
inlinevirtual

Ecrit une image (Z)BIL, à partir d'un buffer d'entiers.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeImage ( float *  buffer)
inlinevirtual

Ecrit une image (Z)BIL, à partir d'un buffer de flottants.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeLine ( uint8_t *  buffer,
int  line 
)
inlinevirtual

Ecrit une ligne d'image (Z)BIL, à partir d'un buffer d'entiers.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
[in]lineligne de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeLine ( uint16_t *  buffer,
int  line 
)
inlinevirtual

Ecrit une ligne d'image (Z)BIL, à partir d'un buffer de flottants.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
[in]lineligne de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.

int BilzImage::writeLine ( float *  buffer,
int  line 
)
inlinevirtual

Ecrit une ligne d'image (Z)BIL, à partir d'un buffer de flottants.

Avertissement
Pas d'implémentation de l'écriture au format (Z)BIL, retourne systématiquement une erreur
Paramètres
[in]buffersource des donnée de l'image à écrire
[in]lineligne de l'image à écrire
Renvoie
0 en cas de succes, -1 sinon

Implémente FileImage.


La documentation de cette classe a été générée à partir des fichiers suivants :