led-matrix-panel/lib/display.py

69 lines
2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from rgbmatrix import RGBMatrix, RGBMatrixOptions
from PIL import ImageFont, Image
#from time import sleep
# Das Bild nur speichern. Nicht die LED-Matrix ansteuern.
DEV = False
#DEV = True
matrix = None
MATRIX_HEIGHT = 64
MATRIX_WIDTH = 64
NUMBER_OF_PANELS = 4
class MyMatrix:
def __init__(self):
#self.matrix_width = options.cols * options.chain_length
#self.matrix_height = options.rows
try:
self.font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-ExtraLight.ttf", 18)
self.large_font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans-ExtraLight.ttf", 32)
except IOError:
self.font = ImageFont.load_default()
self.large_font = ImageFont.load_default()
self.width = MATRIX_WIDTH * NUMBER_OF_PANELS
self.height = MATRIX_HEIGHT
if not DEV:
options = RGBMatrixOptions()
options.rows = MATRIX_HEIGHT
options.cols = MATRIX_WIDTH
options.chain_length = NUMBER_OF_PANELS
#options.parallel = 1
#options.hardware_mapping = 'regular' # change if using Adafruit HAT, e.g. 'adafruit-hat'
options.gpio_slowdown = 4 # try 2, 4, or even 5
#options.disable_hardware_pulsing = True
#options.show_refresh_rate = True
options.drop_privileges = False
options.brightness = 60 # scale down brightness if needed
options.pwm_bits = 8 # default 1112; lower = faster refresh
self.matrix = RGBMatrix(options=options)
#sleep(0.2)
#self.matrix.Clear()
#sleep(0.2)
#self.matrix.Clear()
#sleep(0.2)
#self.matrix.Clear()
#sleep(0.2)
def show(self, image):
"""Save the image to disk in DEV mode. Or send it to the LED matrix panel."""
if DEV:
image.save('image.png')
elif matrix:
self.matrix.SetImage(image)
else:
print("Not in dev mode. And matrix not initialized.")
def buffer(self):
"""Get an image buffer with the right dimensions"""
return Image.new("RGB", (MATRIX_WIDTH * NUMBER_OF_PANELS, MATRIX_HEIGHT))
matrix = MyMatrix()