2010-09-22 4 views
2

J'essaie actuellement de comprendre comment utiliser la bibliothèque d'images génériques inclus dans Boost. En ce moment, je veux juste utiliser la bibliothèque pour stocker des données de pixel et utiliser l'image IO pour écrire des fichiers PNG. J'ai du mal à comprendre comment configurer l'objet.Boost constructeurs d'image GIL

Le HPP dit

image(const point_t& dimensions, 
     std::size_t alignment=1) : _memory(0), _align(alignment) { 
    allocate_and_default_construct(dimensions); 
} 

mais je ne trouve pas de références à l'exception d'un point_t type_def pour view_t :: point_t à point_t.

En outre, le tutoriel trouvé avec le GIL semble inclure uniquement des filtres d'écriture et des algorithmes génériques, et donc chaque exemple de fonction qu'ils fournissent a une vue d'image source, à partir de laquelle ils prennent les dimensions.

Est-ce que je vais dans le mauvais sens? Ou y a-t-il quelque chose que j'ai manqué complètement?

Merci à l'avance

Edit: Je ne sais pas si quelqu'un se soucie, ou a lu, mais pour l'enregistrement, je viens d'utiliser la fonction boost d'image entrelacée pour créer une image PNG. Ce n'est pas exactement la même solution, mais cela fonctionne pour mes applications.

+0

Futurs lecteurs, voir aussi [cette question] (http://stackoverflow.com/questions/5889235/boost-gil-create-image/5889550) – Arthur

Répondre

4

on dirait que vous avez résolu votre problème en attendant, mais juste pour le dossier ... voici quelques conseils pour des informations sur votre problème:

  1. d'abord tout ce que vous avez peut-être manqué le deuxième constructeur de boost :: gil :: image, qui offre un accès explicite aux dimensions horizontales et verticales sans la nécessité du point_t:

    image(x_coord_t width, y_coord_t height, 
        std::size_t alignment=0, 
        const Alloc alloc_in = Alloc()) : _memory(0), _align_in_bytes(alignment), _alloc(alloc_in) { 
        allocate_and_default_construct(point_t(width,height)); 
    } 
    
  2. point_t sera très probablement se référer au modèle de classe point2 défini dans boost/gil/utilities.hpp.

  3. En général, vous devriez vérifier le complete documentation de Boost GIL pour toutes les questions non mentionnées dans le tutoriel. Pour une compréhension plus approfondie de la bibliothèque, il est absolument nécessaire de se familiariser avec le Guide de conception et la documentation Doxygen.