Les constantes
Valeurs de vidage autorisées ; voir deflate() et inflate() :
- #define Z_NO_FLUSH 0 /* Pas de vidage des données compressées, utilisée lorsqu'aucune sortie compressée n'est prête. */
- #define Z_PARTIAL_FLUSH 1 /* Vidage partiel des données compressées, utilisé pour permettre à l'algorithme de sortir un bloc complet mais pas nécessairement tous les résultats. */
- #define Z_SYNC_FLUSH 2 /* Vidage synchronisé, garantit que les données précédemment compressées sont correctement sorties et que la compression reprend à un endroit sûr. */
- #define Z_FULL_FLUSH 3 /* Vidage complet des données compressées, ce qui assure qu'une fenêtre de compression soit réinitialisée. Utilisé principalement pour la compression et la décompression de flux. */
- #define Z_FINISH 4 /* Indique que la compression est terminée et que le flux de sortie doit être terminé. */
- #define Z_BLOCK 5 /* Traite un bloc de compression complet sans demander de vidage. Cela peut être utile pour des contrôles de flux plus fins. */
- #define Z_TREES 6 /* Indique que les arbres de compression (codage des symboles) doivent être envoyés, mais sans traiter réellement les données. */
Codes de retour pour les fonctions de compression/décompression. Les valeurs négatives sont des erreurs, les valeurs positives sont utilisées pour des événements spéciaux mais normaux :
- #define Z_OK 0 /* Opération réussie, aucune erreur. Cette valeur est retournée lorsque la fonction Zlib se termine sans problème. */
- #define Z_STREAM_END 1 /* La fin du flux de données a été atteinte. Cela signifie que la compression ou la décompression a réussi et que tout le flux a été traité. */
- #define Z_NEED_DICT 2 /* Un dictionnaire est nécessaire pour la décompression (appliqué lors de la décompression avec des données compressées nécessitant un dictionnaire pour un décryptage correct). */
- #define Z_ERRNO (-1) /* Erreur liée à un problème système ou à un appel de fonction standard (généralement en cas d'erreur d'entrée/sortie). */
- #define Z_STREAM_ERROR (-2) /* Erreur interne du flux. Cela se produit lorsque le flux de compression ou de décompression est dans un état invalide (par exemple, données mal formatées ou incohérences dans l'état du flux). */
- #define Z_DATA_ERROR (-3) /* Erreur de données. Cela se produit lorsque les données d'entrée sont corrompues ou mal formatées pour la compression ou la décompression. */
- #define Z_MEM_ERROR (-4) /* Erreur de mémoire. Cela signifie que Zlib n'a pas pu allouer suffisamment de mémoire pour effectuer l'opération demandée. */
- #define Z_BUF_ERROR (-5) /* Erreur de tampon. Cela se produit lorsque la taille du tampon est insuffisante pour contenir les données traitées pendant la compression ou la décompression. */
- #define Z_VERSION_ERROR (-6) /* Erreur de version. Cela indique qu'il y a une incompatibilité entre les versions de la bibliothèque Zlib utilisées, ou un problème avec le format de compression/décompression. */
Les niveaux de compression :
- #define Z_NO_COMPRESSION 0 /* Aucun compression. Cette option indique que les données ne seront pas compressées,
ce qui est utile pour les cas où la compression n'est pas nécessaire ou si les données sont déjà compressées. */
- #define Z_BEST_SPEED 1 /* Meilleure vitesse de compression. Cette option privilégie la rapidité de compression
au détriment du taux de compression, ce qui permet d'obtenir des résultats plus rapidement, mais avec des fichiers plus volumineux. */
- #define Z_BEST_COMPRESSION 9 /* Meilleure compression. Cette option donne la compression la plus élevée, produisant
des fichiers de plus petite taille, mais avec un coût de performance plus élevé. */
- #define Z_DEFAULT_COMPRESSION (-1) /* Compression par défaut. Cette option laisse Zlib choisir automatiquement le
niveau de compression basé sur une valeur par défaut, généralement un compromis entre vitesse et taux de compression. */
Stratégie de compression - voir deflateInit2() :
- #define Z_FILTERED 1 /* Stratégie de compression filtrée. Cette stratégie est utilisée pour les données
avec des motifs répétitifs, comme les images ou les fichiers texte, où un filtre
est appliqué avant la compression pour améliorer le taux de compression. */
- #define Z_HUFFMAN_ONLY 2 /* Stratégie de compression utilisant uniquement Huffman coding. Cette stratégie
utilise exclusivement l'algorithme de codage de Huffman pour compresser les données,
sans utiliser les autres techniques de compression, ce qui peut être moins efficace
sur certains types de données. */
- #define Z_RLE 3 /* Stratégie de compression par encodage de longueur de série (Run-Length Encoding).
Cette stratégie est adaptée aux données avec de longues séquences de valeurs répétées,
comme les graphiques binaires, où les séquences sont remplacées par un compteur. */
- #define Z_FIXED 4 /* Stratégie de compression avec des tables de Huffman fixes. Cette méthode utilise
une table de codage de Huffman pré-définie, sans adaptation aux données spécifiques,
ce qui peut être plus rapide mais moins efficace pour certaines données. */
- #define Z_DEFAULT_STRATEGY 0 /* Stratégie de compression par défaut. Cette valeur permet à Zlib de choisir
automatiquement la meilleure stratégie en fonction des données, offrant un bon compromis
entre la vitesse et l'efficacité de la compression. */
Valeurs possibles du champ data_type pour deflate() :
- #define Z_BINARY 0 /* Type de fichier binaire. Cette option est utilisée pour indiquer que le fichier compressé
contient des données binaires, c'est-à-dire des données qui ne doivent pas être modifiées
lors de la compression (aucune conversion de fin de ligne). */
- #define Z_TEXT 1 /* Type de fichier texte. Cette option est utilisée pour indiquer que le fichier compressé
contient des données texte, permettant à Zlib de convertir les fins de ligne pour la
compatibilité avec différents systèmes (par exemple, conversion de CRLF à LF). */
- #define Z_ASCII Z_TEXT /* Type de fichier ASCII (identique à Z_TEXT). Pour des raisons de compatibilité
avec les versions antérieures de Zlib (1.2.2 et précédentes), "Z_ASCII" est un alias pour "Z_TEXT". */
- #define Z_UNKNOWN 2 /* Type de fichier inconnu. Cette option est utilisée lorsque le type de fichier n'est pas spécifié
ou inconnu. Zlib peut alors essayer de déterminer automatiquement le type de fichier. */
La méthode de compression deflate (la seule prise en charge dans cette version) :
- #define Z_DEFLATED 8
Pour initialiser zalloc, zfree, opaque :
- #define Z_NULL 0
Pour compatibilité avec les versions < 1.0.2 :
- #define zlib_version zlibVersion()
Dernière mise à jour : Vendredi, le 17 janvier 2025