summaryrefslogtreecommitdiff
path: root/src/imageutils.cc
diff options
context:
space:
mode:
authordonbright <hugh.m.bright@gmail.com>2013-03-05 23:47:14 (GMT)
committerdonbright <hugh.m.bright@gmail.com>2013-03-05 23:47:14 (GMT)
commit42f21c3a0850083d245aa3ac346a53e876f0679e (patch)
treefacf41750e0fe27cc4cdaf352c9c8e687011d103 /src/imageutils.cc
parent422c668dcb538f181683ae51305bf8d3404f48d6 (diff)
parent4734172c3a16cc06b09e4d2131aa8e380bd0f226 (diff)
Merge pull request #288 from openscad/issue11_2
Issue11 2
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