summaryrefslogtreecommitdiff
path: root/src/imageutils.cc
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2013-03-28 03:55:51 (GMT)
committerMarius Kintel <marius@kintel.net>2013-03-28 03:55:51 (GMT)
commiteefcd6d0b271642d470cd55bc47d1579d943938e (patch)
tree48f9e4db455879025adb9317b740bfa4b72c2d66 /src/imageutils.cc
parentf70578f362c8c2c78036c9de846c20802ac7aa81 (diff)
parentbeff2b1f4811b7f9d2b58bfc6a469a363bc9bfd0 (diff)
Merge branch 'master' into epec-kernel
Conflicts: src/PolySetCGALEvaluator.cc
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