]> git.walde.dev - epaper_display/commitdiff
Fix renderer, update test main
authorDustin Walde <redacted>
Fri, 3 Jan 2025 07:06:28 +0000 (23:06 -0800)
committerDustin Walde <redacted>
Fri, 3 Jan 2025 07:06:28 +0000 (23:06 -0800)
src/main.py
src/renderer.py

index e9686b7c71cd6806bbce86cdc0857eb31145bab1..ff77b38206b14652d384bd768e3e849494574dad 100644 (file)
@@ -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)
 
index 367640c52456c97592dc7914baa65e3ba6764168..278ec89b582dabf22bbdd2894fc71fcd630ffa69 100644 (file)
@@ -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)