Sortie de la bibliothèque de décodage d'images SAIL 0.9.0-pre12

Plusieurs mises à jour majeures de la bibliothèque de décodage d'images SAIL ont été publiées, fournissant une réécriture en C des codecs de la visionneuse d'images KSquirrel, disparue depuis longtemps, mais avec une API abstraite de haut niveau et de nombreuses améliorations. La bibliothèque est prête à l'emploi, mais elle continue d'être améliorée en permanence. La compatibilité binaire et API n'est pas encore garantie. Manifestation.

Caractéristiques de VOILE

  • Bibliothèque rapide et facile à utiliser ;
  • Écrit en C11 avec des liaisons vers C++17 ;
  • La prise en charge des formats d'image est implémentée par des codecs chargés dynamiquement, qui peuvent être supprimés et ajoutés indépendamment du côté client ;
  • Lecture à partir d'un fichier, d'une mémoire, de sources propres ;
  • Prise en charge des images multipages et animées ;
  • La prise en charge des formats populaires se fait toujours à l'aide des bibliothèques correspondantes libjpeg, libpng, etc.
  • Multiplateforme : Linux, Windows, macOS ;
  • « Sondage » - obtenir des informations sur une image sans décoder les pixels ;
  • Noms d'entités humaines (pas de FIMULTIBITMAP) ;
  • Lire et rédiger des profils ICC ;
  • Envoie des pixels RGBA ou BGRA ;
  • Renvoie les pixels d'origine (par exemple, CMJN) s'ils sont pris en charge par le codec ;

Liste des changements depuis la dernière publication :

  • L'API a été considérablement améliorée et simplifiée. Était : struct sail_context *context ; SAIL_TRY(sail_init(&context)); struct voile_image *image; caractère non signé *image_pixels ; SAIL_TRY(sail_read(chemin, contexte, &image, (void **)&image_pixels)); ... gratuit(image_pixels); sail_destroy_image(image);

    Maintenant : struct sail_image *image ; SAIL_TRY(sail_read_file(chemin, &image); ... sail_destroy_image(image);

  • Ajout des formats BMP, GIF, TIFF ;
  • Disponibilité en VCPKG sur toutes les plateformes sauf UWP ;
  • Tests de performance de référence publiés ;
  • La liaison C++ a été déplacée vers C++17 ;
  • Les fonctions d'allocation de mémoire sont rassemblées en un seul endroit afin qu'elles puissent être facilement remplacées par les vôtres, mais pour le moment, cela ne peut être fait que par recompilation ;
  • Les utilisateurs peuvent désormais utiliser CMake find_package() pour connecter SAIL ;
  • Ajout de la possibilité de compiler statiquement (SAIL_STATIC=ON) ;
  • Ajout de la possibilité de compiler tous les codecs dans une bibliothèque commune (SAIL_COMBINE_CODECS=ON) ;
  • Les travaux ont commencé sur l'ajout de tests basés sur µnit ;

Méthode d'installation recommandée

  • Linux - vcpkg, les règles Debian sont également disponibles
  • Windows-vcpkg
  • macOS - infusion

Source: opennet.ru

Ajouter un commentaire