openscad/src/imageutils.cc

28 lines
774 B
C++

#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;
}
}