LibNebular

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

Screenshots

Description

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

Features

  • 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)

KEEP ME UPDATED

User Ratings

★★★★★
★★★★
★★★
★★
1
0
0
0
0
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

C++

Registered

2011-05-28
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.