Babl is a dynamic, any to any, pixel format conversion library. It
provides conversions between the myriad of buffer types images can be
stored in. Babl doesn't only help with existing pixel formats, but also
facilitates creation of new and uncommon ones.
Mp3stat is a utility to read information about MP3's and OGG's bitstream.
More specifically, how certain bitrates have been placed in the bitstream
by the encoder. Not only does mp3stat give you a graphical representation
of the average bitrate per 1/500th of the file in, a linear bar graph to
allow you to compare encoders and settings, it also has a batch file mode.
The batch file mode allows you to use mp3stat as a script utility instead
of GUI, for use in your own programs and or scripts. The batch mode can be
extended trivially to give just as much info as the GUI version, but now
defaults to configurable output of 3 pieces of info; name, runtime, and
average bitrate. The batch mode can take MP3's, and OGG's in the same
directory, but it cannot (yet at least) recursively run into subdirectories
-- this will be possible in the next version, arriving soon.
PEAR::XML_Serializer serializes complex data structures like arrays
or object as XML documents.
This class helps you generating any XML document you require without
the need for DOM.
Furthermore this package can be used as a replacement to serialize()
and unserialize() as it comes with a matching XML_Unserializer that
is able to create PHP data structures (like arrays and objects)
from XML documents, if type hints are available.
If you use the XML_Unserializer on standard XML files, it will try
to guess how it has to be unserialized. In most cases it does exactly
what you expect it to do.
Try reading a RSS file with XML_Unserializer and you have the whole
RSS file in a structured array or even a collection of objects,
similar to XML_RSS.
Since version 0.8.0 the package is able to treat XML documents
similar to the simplexml extension of PHP 5.
libarena is a custom memory allocator interface and implementation. Four
allocators are provided: flat LIFO arena allocator, object pool allocator
and two malloc(3) wrappers: one which returns the pointers unadulterated
and one which obeys the requested, arbitrary alignment. These can be used
directly, or through their exported prototype interfaces.
libarena is meant to provide a baseline interface so allocators can be
stacked, and to provide a simple and well defined interface for libraries
and applications without becoming mired in features or capabilities. It is
not meant to restrict or confine what custom allocators can actually
accomplish. For instance, the included pool and arena allocators include a
suite of string utilities which aren't available in the generic exportable
interface. Note that these string utilities are built upon a generic
interface (see util.h) which can take the prototypical allocation context,
so they are also available to any 3rd party compatible allocators.
A perl module that is designed to provide easy to use settings
files for your project. You subclass the basic Config::Setting
class in one of your own modules, and then provide an interface to
your code using it. When set up, you can then override the settings
on a per-host basis, or even using an environment variable.
By default a win.ini style of configuration is used, but this can
be overridden and an XML based configuration is also included. The
access mechanism can also be overridden, the setting don't have to
come from a file, but (maybe) from a web site. You'll have to write
your own there, though.
If you've ever tried to use Test::NoWarnings to confirm there are no warnings
generated by your tests, combined with the convenience of done_testing to not
have to declare a test count, you'll have discovered that these two features do
not play well together, as the test count will be calculated before the warnings
test is run, resulting in a TAP error. (See examples/test_nowarnings.pl in this
distribution for a demonstration.)
This module is intended to be used as a drop-in replacement for
Test::NoWarnings: it also adds an extra test, but runs this test before
done_testing calculates the test count, rather than after. It does this by
hooking into done_testing as well as via an END block. You can declare a plan,
or not, and things will still Just Work.
Chroma is an abstract puzzle game. A variety of colourful shapes
are arranged in a series of increasingly complex patterns, forming
fiendish traps that must be disarmed and mysterious puzzles that
must be manipulated in order to give up their subtle secrets.
Initially so straightforward that anyone can pick it up and begin
to play, yet gradually becoming difficult enough to tax even the
brightest of minds.
It features:
* twenty one levels, ranging from beginner to expert
* infinite undo and redo capability, as well as replay of solutions
* a choice of smooth graphics or a minimal, text based version
* a level editor to allow you to design your own puzzles
* released under an open source licence, free to play
Have you got what it takes to solve Chroma?
gSculpt is an open source, procedural subdivision modeller. It has a
comprehensive set of polygon modelling tools, including most of those
found in Wings 3D, and more.
Workflow and speed of use are important design goals in the
development of gSculpt. Pre-selection highlighting throughout the
program, and keyboard short cuts ensure that the workflow is fast and
efficient, while providing access to a powerful procedural system
which allows mistakes to be rectified easily.
Its procedural modelling system makes it an excellent choice for
making modelling tutorials, as the steps required to build the model
from the beginning are displayed to the user in a list. This list can
be navigated easily, allowing a user to view the process one step at a
time, at their own pace, while being able too look at the model from
all angles as they go.
gSculpt can import and export Wavefront Object (.obj) model files.
The Graphics Transformation Languages is a set of libraries for using and
integrating transformation algorithms (such as filter or color conversion) in
graphics applications.
The goal is to provide the tools, languages and libraries to create generic
transformation for graphics. Those transformations could then be used by
different programs (Krita, The Gimp, CinePaint, gegl...).
Currently the focus is on developing two languages, designed for two different
implementations.
- OpenCTL which is a GPL compatible of the Color Transformation Language, this
language is dedicated at transforming the value of a single pixel (for
instance brightness adjustement or desaturate). CTL is designed to be part of
the Color Management process.
- OpenShiva is inspired by Adobe's Hydra language from the AIF Toolkit, Shiva
is a language that apply a kernel-like transformations on an image, that means
it works using more than one pixel.
This a thumbnail maker. Thumbnails are smaller versions of the original
image/graphic/picture and are used for preview purposes, where bigger images
can take a long time to load. They are also used in image galleries to
preview a lot of images at a time.
This module also has the capability to add information strips about the
original image. Original image's size (in bytes) and resolution & mime type
can be added to the thumbnail's upper and lower parts. This feature can be
useful for web software (image galleries or forums).
This is a Yet Another type of module. There are several other thumbnail
modules on CPAN, but they simply don't have the features I need, so this
module is written to increase the thumbnail population on CPAN.
The module can raise an exception if something goes wrong. So, you may have
to use an eval block to catch them.