From 2c8dd4443d11b69e67d48574bacfb9a136ca22f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Tue, 15 Jun 2021 23:44:17 +0200 Subject: [PATCH] feat: add image set and get pixel functions --- image-viewer/include/image.h | 4 ++++ image-viewer/src/image.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/image-viewer/include/image.h b/image-viewer/include/image.h index c7d1a8d..e3ba0a7 100644 --- a/image-viewer/include/image.h +++ b/image-viewer/include/image.h @@ -49,6 +49,10 @@ typedef struct { image_t image_create(char *path); void image_destroy(image_t *image); +display_pixel_t image_get_pixel(image_t *image, uint16_t x, uint16_t y); + +void image_set_pixel(image_t *image, uint16_t x, uint16_t y, + display_pixel_t pixel); image_region_t image_region_create(uint16_t x, uint16_t y, uint16_t width, uint16_t height); bool image_write_to_display(image_t *image, display_t *display, image_region_t region); diff --git a/image-viewer/src/image.c b/image-viewer/src/image.c index 792b768..2bc2c91 100644 --- a/image-viewer/src/image.c +++ b/image-viewer/src/image.c @@ -31,6 +31,15 @@ image_region_t image_region_create(uint16_t x, uint16_t y, uint16_t width, return region; } + +display_pixel_t image_get_pixel(image_t *image, uint16_t x, uint16_t y) { + return image->pixels[y * image->width + x]; +} + +void image_set_pixel(image_t *image, uint16_t x, uint16_t y, + display_pixel_t pixel) { + image->pixels[y * image->width + x] = pixel; +} double get_scale_factor(uint16_t w, uint16_t h, image_region_t display_region) { double scale_x = (double)display_region.width / (double)w; double scale_y = (double)display_region.height / (double)h; -- 2.48.1