aboutsummaryrefslogtreecommitdiff
path: root/lib/data
diff options
context:
space:
mode:
authorChristian C <cc@localhost>2025-03-22 22:40:26 -0700
committerChristian C <cc@localhost>2025-03-22 22:40:26 -0700
commitdf7606101ae9a04c72b1b7172f2250e1be7ff271 (patch)
tree209e8690c53203607bb1b795ac85e3d3555f4fc7 /lib/data
parent16422831ed49c573c1b8a43ba907bceb00fd5eea (diff)
New Types
Diffstat (limited to 'lib/data')
-rw-r--r--lib/data/image_types.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/lib/data/image_types.c b/lib/data/image_types.c
index 2af5a79..f96b631 100644
--- a/lib/data/image_types.c
+++ b/lib/data/image_types.c
@@ -1 +1,42 @@
#include <lib/data/image_types.h>
+#include <stdlib.h>
+
+struct Image* create_image(size_t width, size_t height)
+{
+ struct Image* ip = (struct Image*)malloc(sizeof(struct Image));
+ ip->width = width;
+ ip->height = height;
+ ip->image = (ImageData_t**)malloc(sizeof(ImageData_t*) * ip->height);
+ ImageData_t* image_data = calloc(width*height, sizeof(ImageData_t));
+ for (size_t y = 0; y < height; y++) {
+ ip->image[y] = &image_data[y*width];
+ }
+ return ip;
+}
+
+struct ImageMask* create_image_mask(size_t width, size_t height)
+{
+ struct ImageMask* ip = (struct ImageMask*)malloc(sizeof(struct ImageMask));
+ ip->width = width;
+ ip->height = height;
+ ip->mask = (ImageMaskData_t**)malloc(sizeof(ImageMaskData_t*) * ip->height);
+ ImageMaskData_t* image_data = calloc(width*height, sizeof(ImageMaskData_t));
+ for (size_t y = 0; y < height; y++) {
+ ip->mask[y] = &image_data[y*width];
+ }
+ return ip;
+}
+
+void free_image(struct Image* image)
+{
+ free(image->image[0]);
+ free(image->image);
+ free(image);
+}
+
+void free_image_mask(struct ImageMask* image_mask)
+{
+ free(image_mask->mask[0]);
+ free(image_mask->mask);
+ free(image_mask);
+}