C++ library for streaming images (png/jpg/bmp)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

41 lines
1.3 KiB

12 years ago
ImageStreams
============
Motivation
----------
Some time ago I had a project where I rendered something to a high quality buffer, which I wanted to export as a png. I used libpng++ for that, the downside was that this library allocated the image again (in a different format). But the only thing I wanted to do is convert my format to another format (pixel by pixel), so this allocation seemed redundant. That's why I wanted a image stream library.
Features
--------
12 years ago
* Output streams for bmp, png and jpg image files
12 years ago
* Grayscale and color
* Low memory usage (because it streams)
* Easy to use
12 years ago
Usage
12 years ago
-----
```C++
png::gray_ostream image(1024, 768, "test.png");
for(int y = 0; y < 768; ++y){
for(int x = 0; x < 1024; ++x){
12 years ago
image << png::gray_ostream::pixel(some_generator(x,y));
12 years ago
}
}
12 years ago
// done, image is automatically saved (with RAII)
12 years ago
```
12 years ago
There are more examples in the main.cpp file.
Dependencies
------------
For the png format libpng is required. For the jpg format libjpeg or libjpeg-turbo is required. The bmp format does not depend on anything, so you can output images without other libraries :D.
TODO
----
* Make output iterators
* Input streams (plus iterators)
12 years ago
* Add alpha support (where possible)
* Some interface for parameters (eg. jpg quality)
* Add appropriate license
* Really make it a library (ie. restructure directories)