diff options
author | Christian C <cc@localhost> | 2025-03-22 22:40:26 -0700 |
---|---|---|
committer | Christian C <cc@localhost> | 2025-03-22 22:40:26 -0700 |
commit | df7606101ae9a04c72b1b7172f2250e1be7ff271 (patch) | |
tree | 209e8690c53203607bb1b795ac85e3d3555f4fc7 /lib/data | |
parent | 16422831ed49c573c1b8a43ba907bceb00fd5eea (diff) |
New Types
Diffstat (limited to 'lib/data')
-rw-r--r-- | lib/data/image_types.c | 41 |
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); +} |