la lumière-poids de C++ bibliothèque d'images

J'ai été en regardant autour pour une simple et petite mais robuste et rapide (pas complet!) l'image de la bibliothèque en C++ (C suffirait, si non C++ version est disponible).

Caractéristiques principales-je suis à la recherche sont:

  • Libre (open source est un plus)
  • Construit pour la vitesse
  • Pas d'énormes fonctionnelle de météorisation (comme ImageMagik, qui est vraiment complet, mais est un mammouth)
  • Minuscule empreinte mémoire
  • Prend uniquement en charge le minimum absolu de fonctions comme enregistrer/charger, redimensionner, convertir entre les formats. Rien de fantaisie
  • De récupération d'erreur pour "casser" les fichiers (contrairement à stb_image.c, qui a très mauvaise récupération d'erreur)
  • MSVC et gcc sympathique (j'ai utilisé CxImage pour un certain nombre d'années, mais avec la dernière version, je vais avoir des problèmes avec MSVC 2010, et il semblerait que la participation active de développement et de soutien pour il est mort maintenant, donc je suis sur le point de tomber)
  • Doit de soutien populaire formats modernes, comme JPEG2000, que ce soit directement ou par l'intermédiaire d'une utilisation de bibliothèques comme libpng
  • Ne se soucient pas si c'est DirectX ou OpenGL que je ne prévoyez pas de l'utiliser pour afficher les images uniquement des fichiers de processus pour un site web
  • D'avoir du soutien pour à la fois statique et dynamique de la liaison est un plus
  • En charge des threads est un énorme plus

Les bibliothèques j'ai regardé et l'a rejeté pour une raison ou une autre:

  • CxImage (pas de développement actif sur plus)
  • ImageMagik - trop énorme (et lent)
  • stb_image.c - la mauvaise gestion des erreurs, de ne pas soutenir suffisamment les formats d'image
  • Diable (havn't rejete encore, mais je n'ai pas regardé beaucoup de choix juste appris il y a quelques minutes sur un poste similaire sur DONC) - sur la base de sa taille et de fonctionnalités, il semble très prometteur pour ce dont j'ai besoin si
  • FreeImage (de même que le Diable va jeter un coup d'oeil peu de temps mais c'est un peu grand en taille à mon goût)
  • SOL (le même que stb_image.c)
  • TimThumb - c'est un PHP, pas un C/C++

En bref, je veux juste quelque chose d'aussi minuscule que possible et aussi vite que possible, au détriment d'un peu d'avoir l'absolue strict minimum, mais je suis encore à trouver un candidat approprié jusqu'à présent.

Des suggestions à partir de cette communauté, s'il vous plaît? Mais gardez à l'esprit les contraintes que j'ai énumérés ci - dessus, je ne pense pas que c'est OK pour lancer une réponse d'un formulaire "avez-vous essayé de X?", où "X" ne pas répondre à la moitié de mes besoins 🙂

Modifier: en Regardant un peu plus en Diable, il semblerait qu'il pourrait être ce dont j'ai besoin. Il est léger, petit, robuste. Maintenant j'ai juste besoin de s'assurer qu'il effectue.
Oh, et CImage (j'ai oublié de le mentionner dans la liste) - n'a pas, comme c'est la performance (même si je dois admettre que l'idée de modèle, seule la mise en œuvre est mignon, pour dire le moins)

  • CxImage est maintenu un peu de XBMC par les devs là, il pourrait être ce que vous voulez.
  • a-t-elle d'être open-source, ou de la croix-plate-forme? qu'est-ce que votre plate-forme cible?
  • Mon cibler des plates-formes sont à la fois les projets en cours et les miennes, donc la plage est Windows + Linux (et potentiellement iOS un jour).Jusqu'à présent exclusivement bureautiques, surtout dans le contexte de serveur web (IIS, apache)
  • stackoverflow.com/questions/50079/c-image-library
InformationsquelleAutor YePhIcK | 2012-08-05