aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/main.c b/src/main.c
index abfc57f..94315e4 100644
--- a/src/main.c
+++ b/src/main.c
@@ -6,6 +6,7 @@
#include <lib/lib.h>
#include <lib/bool.h>
#include <lib/dir.h>
+#include <lib/file.h>
#include <lib/time.h>
#include <lib/color.h>
#include <lib/algo/flood_fill.h>
@@ -80,7 +81,9 @@ int main(int argc, char** argv)
// This assumes 4096 (2^12) > labels
for (size_t y = 0; y < height; y++) {
for (size_t x = 0; x < width; x++) {
- masks[x + y*width] |= 0xFF000000;
+ /// RGBA channels: Move labels to RGB
+ masks[x + y*width] <<= 4;
+ masks[x + y*width] |= 0x000F;
}
}
//-----------------------------------------------
@@ -139,6 +142,14 @@ int main(int argc, char** argv)
}
if (masks != NULL) {
+ for (size_t y = 0; y < height; y++) {
+ for (size_t x = 0; x < width; x++) {
+ /// Restore labels from RGBA
+ masks[x + y*width] &= 0xFFF0;
+ masks[x + y*width] >>= 4;
+ }
+ }
+ write_array("../out.bin", masks, width*height*sizeof(uint16_t));
free(masks);
}
CloseWindow();