5.0 Stars (1)
2 Downloads (This Week)
Last Update:
Download libnebular-0.1.tar.gz
Browse All Files



LibNebular is C++ Linux library for uniform image file manipulation as String key-value pairs (with sometimes BLOB values) where different file types are intruduced through DL (".so") libraries. Includes BMP and JPEG plugins. Can easily be ported.

LibNebular Web Site


  • Read/write of one-page one-frame pictures into String key-value pairs (if String value doesn't fit, BLOB also can be used)(That's not hard to extend property system to multipage files and animations because there is property subtree proxy.)
  • Many (RGBAX) bitmap memory formats are supported
  • File type can be determined through URL extension and through file signature ("magic") (and then file is manipulated through corresponding Dynamically Loadable library (".so") plugin)
  • Ability to store bitmap in user-supplied memory area (its required size can be calculated by the library)
  • No support (through it's easy to add) for conversion to, from palettized bitmaps - but palette storage and retrieval can be done
  • Doesn't do anything about graphical output (through there's included example of output with help of LibSDL)
  • Through library is for GCC on GNU/Linux, seems that porting is not hard
  • Fairly good class design and C++ language (mostly as in ISO/IEC 14882:2003)
  • Moderate number of external dependencies at compile time (see "INSTALL"), and even more: some of them are included in distribution (if you plan to use them, however, note their different licenses)
  • Even less compile time dependencies for user who isn't plugin developer (GNU C Library, C++ Standard Library; included in distribution LibBoost "boost/shared_ptr.hpp", "boost/make_shared.hpp"... Some more? Seems that none)
  • Nearly no external depencencies at library runtime (GNU C Library, maybe C++ Standard library and hmm... LibJPEG for JPEG plugin)
  • Distinct boundary between User API and Plugin API
  • Doxygen in-code documentation
  • Errors are reported through exceptions; also, there's mechanism to report warnings (and informational messages) to user-supplied callbacks
  • Wrapper for "emulation" of exception throwing from below C code (e.g. for error handling in LibJPEG)
  • There are examples of realizaton of plugin with help of (1) external C library (JPEG plugin) and (2) nothing but own hands (BMP plugin)
  • Property subtree proxy for manipulation identically-prefixed properties as distinct trees and even pictures
  • Many of warning, error messages are uniform (but not identical)
  • System unit testing (done with help of Google Test) is included
  • Distinct namespace for all identifiers exposed to public (but, surely, except macros)
  • Some useful templates are already instantiated
  • OOP patterns and other good programming techniques are used such as Singleton, own Iterator-s; Functor-s, Smart pointers, Pimpl-s, BLOB-s with copy-on-write feature, Wrappers, Proxy for Subtree
  • Autotools (Autoconf, Automake) build system
  • Everything excluding Software Requirements Specificaton and original task is in English language (former are in Russian language)


User Ratings

ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 0 / 5
Write a Review

User Reviews

  • allinmadison
    1 of 5 2 of 5 3 of 5 4 of 5 5 of 5

    Thanks for good program!

    Posted 06/26/2013
Read more reviews

Additional Project Details

Intended Audience

Developers, Information Technology

Programming Language



Screenshots can attract more users to your project.
Features can attract more users to your project.

Icons must be PNG, GIF, or JPEG and less than 1 MiB in size. They will be displayed as 48x48 images.