Boost logo

Boost :

From: Lubomir Bourdev (lbourdev_at_[hidden])
Date: 2007-05-11 21:41:54


Michael Marcin wrote:
> Hello,
>
> I have the need to load a PNG from a generic input stream that has a
> similar
> interface (i.e. has a read, operator ! and fail with the same
> signature/semantics as std::istream). The png reading extensions
don't
> appear to be able to load from anything other than a FILE*. In a
> library as
> modern as GIL I'm sort of suprised there is apparently no way to load
> from a
> generic stream.

Indeed the I/O extension has not received as much development attention
as the core library. There are lots of ways to improve it - using
streams is just one of them. In fact I proposed at some point in the
past the possibility of keeping the I/O extension out of Boost. The
disadvantage is that I/O support is one of the most useful
functionalities. It is hard to use GIL without some way of
reading/writing to file.

If anyone has the bandwidth to rewrite the I/O library we would greatly
appreciate it.
As for using streams, GIL's I/O is simply a translation layer to the
underlying low level I/O library. In this case libpng takes FILE, so we
take FILE. But if Stefan has an adaptor that would be a helpful first
step. Of course, we would need such an adaptor for the other I/O formats
too.

Lubomir


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk