Browse Source

Support drawing rotated images.

Ryan Ziolko 4 years ago
parent
commit
423b6166a0
1 changed files with 11 additions and 2 deletions
  1. 11 2
      RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd5in65f.py

+ 11 - 2
RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd5in65f.py

@@ -141,11 +141,20 @@ class EPD:
 
     def getbuffer(self, image):
         # Create a pallette with the 7 colors supported by the panel
-        pal_image= Image.new("P", (1,1))
+        pal_image = Image.new("P", (1,1))
         pal_image.putpalette( (0,0,0,  255,255,255,  0,255,0,   0,0,255,  255,0,0,  255,255,0, 255,128,0) + (0,0,0)*249)
 
+        # Check if we need to rotate the image
+        imwidth, imheight = image.size
+        if(imwidth == self.width and imheight == self.height):
+            image_temp = image
+        elif(imwidth == self.height and imheight == self.width):
+            image_temp = image.rotate(90, expand=True)
+        else:
+            logging.warning("Invalid image dimensions: %d x %d, expected %d x %d" % (imwidth, imheight, self.width, self.height))
+
         # Convert the soruce image to the 7 colors, dithering if needed
-        image_7color = image.convert("RGB").quantize(palette=pal_image)
+        image_7color = image_temp.convert("RGB").quantize(palette=pal_image)
         buf_7color = bytearray(image_7color.tobytes('raw'))
 
         # PIL does not support 4 bit color, so pack the 4 bits of color