From: Dustin Walde Date: Fri, 3 Jan 2025 07:06:28 +0000 (-0800) Subject: Fix renderer, update test main X-Git-Url: https://git.walde.dev/?a=commitdiff_plain;h=635f3ae255b410fd4824e69b3e83c095968b1eaa;p=epaper_display Fix renderer, update test main --- diff --git a/src/main.py b/src/main.py index e9686b7..ff77b38 100644 --- a/src/main.py +++ b/src/main.py @@ -3,21 +3,16 @@ import sys from PIL import Image -import display +import renderer logger = logging.getLogger() -# logger.addHandler(logging.StreamHandler(sys.stdout)) logger.setLevel(logging.INFO) logger = logging.getLogger(__name__) image = Image.open("testtree_IXCCGR.png") -image = image.transpose(Image.Transpose.ROTATE_270) logger.info("image open") -logger.info("%d -- %d", image.width, image.height) +rend = renderer.Renderer() -dsp = display.Display() -white = Image.new("1", (dsp.width, dsp.height), 'white') - -dsp.render(image, white) +rend.render(image) diff --git a/src/renderer.py b/src/renderer.py index 367640c..278ec89 100644 --- a/src/renderer.py +++ b/src/renderer.py @@ -10,20 +10,23 @@ class Renderer: def render(self, image: Image): hsv_image = image.convert("HSV") + hsv_pixels = hsv_image.load() black_image = image.copy() + black_pixels = black_image.load() red_image = Image.new('L', (self.width, self.height), 'white') + red_pixels = red_image.load() for x in range(self.width): for y in range(self.height): - h, s, v = hsv_image[x,y] + h, s, v = hsv_pixels[x,y] red_hue_val = max(0, 255 - h*6, (h-212)*6) - red_val = red_hue_val * s * v / 256 / 256 + red_val = int(red_hue_val * s * v / 256 / 256) if red_val > 0: - red_image[x, y] = 255 - red_val - black_image[x, y] = (v, v, v) + red_pixels[x, y] = 0 # 255 - red_val + black_pixels[x, y] = (v, v, v) - black_image.transpose(Image.Transpose.ROTATE_270) - red_image.transpose(Image.Transpose.ROTATE_270) + black_image = black_image.transpose(Image.Transpose.ROTATE_270) + red_image = red_image.transpose(Image.Transpose.ROTATE_270) self.display.render(black_image, red_image)