mirror of
https://gitlab1.ptb.de/waltem01/Matrix
synced 2024-11-14 17:03:49 +00:00
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
import time
|
|
from ..samplebase import SampleBase
|
|
from PIL import Image
|
|
|
|
|
|
class ImageScroller(SampleBase):
|
|
def __init__(self, *args, **kwargs):
|
|
super(ImageScroller, self).__init__(*args, **kwargs)
|
|
self.parser.add_argument("-i", "--image", help="The image to display", default="../../../examples-api-use/runtext.ppm")
|
|
|
|
def run(self):
|
|
if not 'image' in self.__dict__:
|
|
self.image = Image.open(self.args.image).convert('RGB')
|
|
self.image.resize((self.matrix.width, self.matrix.height), Image.ANTIALIAS)
|
|
|
|
double_buffer = self.matrix.CreateFrameCanvas()
|
|
img_width, img_height = self.image.size
|
|
|
|
# let's scroll
|
|
xpos = 0
|
|
while True:
|
|
xpos += 1
|
|
if (xpos > img_width):
|
|
xpos = 0
|
|
|
|
double_buffer.SetImage(self.image, -xpos)
|
|
double_buffer.SetImage(self.image, -xpos + img_width)
|
|
|
|
double_buffer = self.matrix.SwapOnVSync(double_buffer)
|
|
time.sleep(0.01)
|
|
|
|
# Main function
|
|
# e.g. call with
|
|
# sudo ./image-scroller.py --chain=4
|
|
# if you have a chain of four
|
|
if __name__ == "__main__":
|
|
image_scroller = ImageScroller()
|
|
if (not image_scroller.process()):
|
|
image_scroller.print_help()
|