diff options
author | Marius Kintel <marius@kintel.net> | 2013-03-06 18:08:31 (GMT) |
---|---|---|
committer | Marius Kintel <marius@kintel.net> | 2013-03-06 18:08:31 (GMT) |
commit | cfc67f928fc86310614940f126d9f6c76d4e9ea7 (patch) | |
tree | 162be7579d3acd0eeb5b7b509ef9a0b428d6831f /src/imageutils-lodepng.cc | |
parent | fe44758f5096be0e98c82d2cb0d54bdeffc4403a (diff) | |
parent | 974abf13049d5e73227418e3990af8a9bbf9db09 (diff) |
Merge branch 'master' of github.com:openscad/openscad
Diffstat (limited to 'src/imageutils-lodepng.cc')
-rw-r--r-- | src/imageutils-lodepng.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/imageutils-lodepng.cc b/src/imageutils-lodepng.cc new file mode 100644 index 0000000..cd104d6 --- /dev/null +++ b/src/imageutils-lodepng.cc @@ -0,0 +1,17 @@ +#include "imageutils.h" +#include "lodepng.h" +#include <stdio.h> +#include <stdlib.h> +#include <vector> +#include <iterator> +#include <algorithm> + +bool write_png(std::ostream &output, unsigned char *pixels, int width, int height) +{ + std::vector<unsigned char> dataout; + unsigned err = lodepng::encode(dataout, pixels, width, height, LCT_RGBA, 8); + if ( err ) return false; + output.write( reinterpret_cast<const char *>(&dataout[0]), dataout.size()); + if ( output.bad() ) std::cerr << "Error writing to ostream\n"; + return output.good(); +} |