summaryrefslogtreecommitdiff
path: root/src/imageutils.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-03-06 18:08:31 (GMT)
committerMarius Kintel <marius@kintel.net>2013-03-06 18:08:31 (GMT)
commitcfc67f928fc86310614940f126d9f6c76d4e9ea7 (patch)
tree162be7579d3acd0eeb5b7b509ef9a0b428d6831f /src/imageutils.cc
parentfe44758f5096be0e98c82d2cb0d54bdeffc4403a (diff)
parent974abf13049d5e73227418e3990af8a9bbf9db09 (diff)
Merge branch 'master' of github.com:openscad/openscad
Diffstat (limited to 'src/imageutils.cc')
-rw-r--r--src/imageutils.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/imageutils.cc b/src/imageutils.cc
new file mode 100644
index 0000000..3e1f3bc
--- /dev/null
+++ b/src/imageutils.cc
@@ -0,0 +1,27 @@
+#include "imageutils.h"
+#include <assert.h>
+#include <string.h>
+#include <fstream>
+
+void flip_image(const unsigned char *src, unsigned char *dst, size_t pixelsize, size_t width, size_t height)
+{
+ assert( src && dst );
+ size_t rowBytes = pixelsize * width;
+ for (size_t i = 0 ; i < height ; i++) {
+ memmove(dst + (height - i - 1) * rowBytes, src + i * rowBytes, rowBytes);
+ }
+}
+
+bool write_png(const char *filename, unsigned char *pixels, int width, int height) {
+ assert( filename && pixels );
+ std::ofstream fstream( filename, std::ios::binary );
+ if (fstream.is_open()) {
+ write_png( fstream, pixels, width, height );
+ fstream.close();
+ return true;
+ } else {
+ std::cerr << "Can't open file " << filename << " for export.";
+ return false;
+ }
+}
+
contact: Jan Huwald // Impressum