Hi there, I've been busy working on the next version of gil's IO
extension. The last iteration was very slow to compile especially when
reading or writing tiff images. This and other problems have been
fixed. As a result compilation is a lot faster but also a lot more
tiff formats can now be read or written.
Please grab the latest from:
http://gil-contributions.googlecode.com/svn/trunk/gil_2/boost/gil/extension/...
This download is a little bigger than to usual since there are test
images included.
Please see my original announcement below for documentation. The goal
of this extension is to substitute the original io lib which is part
of gil, and though shipped with boost. To do this a review is probably
needed. I'll work on a proper documentation as the next step. Can
anyone tell me where to find a tutorial for creating quickdoc?
There is one problem I cannot fix and would like to ask the experts on
this list. Please read the readme.txt in libs\gil\io_new\unit_test
which explains the scenario. This problem has something to do with
erroneously choosing the wrong functions by the compiler. The
enable_if metafunction doesn't work correctly here.
As usual any feedback is welcome.
Thanks,
Christian
-------------------------------------------------------
Hi there, over the past few months I have been working on a new
version of gil's io extension. In this release I've added support for:
* more image formats, most importantly bit_aligned images ( like 1bit images ),
* reading of subimages like one row at a time for huge images,
* reading image information, only.
* having a unified interface for all sorts of devices, subimages, and
converter objects.
So far, png, jpeg, and tiff images are supported. In the not so
distant future there will be bmp and pnm images added.
You can grab the current version via subversion from:
https://gil-contributions.googlecode.com/svn/trunk/gil_2/boost/gil/extension...
If desired I can supply a zip file to the vault.
The images libraries can be grabbed from:
ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz ( www.ijg.org isn't
responding )
http://www.libpng.org/pub/png/libpng.html
http://www.libtiff.org/
It's highly advised to built your own version of the image lib you
need. I installed the GNU's binaries for Windows, but unfortunately, I
only had problems with them.
The library is still header-only. When using boost::filesystem's
paths, of course, you add a dependency to the filesystem lib.
The Read Interface
------------------------
Reading an image can be done in multiple ways depending on what your
need is. Like the old io lib there are 4 different ways of reading
images. As there are:
* read_image: Read image, the right amount of memory will be allocated
beforehand. The supplied image type needs to be compatible with actual
image file.
* read_view: Read image, the image's memory must be already allocated.
The supplied image type needs to be compatible with actual image
file.
* read_and_convert_image: Same as read_image, but the user can specify
an color converter.
* read_and_convert_view: Same as read_view, but the user can specify
an color converter.
There is a new function for reading image information. Since every
image format has it's own set of tags, the library defines seperate
image_read_info