Boost logo

Boost :

Subject: Re: [boost] [gil] New IO release
From: Domagoj Saric (dsaritz_at_[hidden])
Date: 2010-11-30 17:23:35

"Christian Henning" <chhenning_at_[hidden]> wrote in message

> io_new is also object-oriented but it also provides, as you know, the
> free floating helper functions like read_image, etc. Even though, I
> don't state it in the documentation but you could use the underlying
> classes also. All image formats use the same reader class which is
> hidden inside the detail namespace. For instance:
> [taken from image_read.hpp]
> detail::reader< Device
> , FormatTag
> , detail::read_and_no_convert
> > reader( file
> , settings
> );
> reader.init_image( img
> , reader.get_info()
> );
> reader.apply( view( img ));
> This object can be reused at will.

Isn't it the other way around, the free functions are the official interface
while the detail::reader<> class template is the helper implementation
And the reader objects, AFAICT, cannot actually be reused in a meaningful
way (e.g. the apply<>() method for the JPEG reader calls
jpeg_start_decompress() and jpeg_finish_decompress() ) ...

> But I have a question for you. Are
> you sure you can easily reuse a jpeg_decompress_struct object and jump
> around a jpeg image without getting it confused? I mean, for instance,
> imagine you read the last image line first and then try to read the
> first line. Does that work?

With LibJPEG, you cannot 'jump around easily' (e.g. to go back/rewind the
decoding you have to abort and restart the decompression) but 'jumping
around' does not really represent a significant use case (io2 does however
detect this and automatically handles it)...'Forward/single direction'
reading OTOH is a different story as the io2 reader preserves the
decompression state so that you can simply and cheaply resume reading a JPEG
(e.g. for sequential ROI based access)...

> I would love to work with you to create the best image reader/writer
> possible for the boost community. Let's see what the review brings to
> the table and afterwards we can start sorting out the major
> differences. How does that sound?

Well if the change is already inevitable or very probable, a full official
review of a library that is going to change (or at least a significant part
of it) in a significant way both from within and without might be
misplaced...But the review date is here so let's make the best of it :)
I'll find some time to reiterate in short the objections from my original
post in the official review thread...

"What Huxley teaches is that in the age of advanced technology, spiritual
devastation is more likely to come from an enemy with a smiling face than
from one whose countenance exudes suspicion and hate."
Neil Postman 

Boost list run by bdawes at, gregod at, cpdaniel at, john at