Merge 270c8b854c into 0a9e578944
This commit is contained in:
commit
54c29edf7a
1 changed files with 16 additions and 5 deletions
|
|
@ -20,20 +20,30 @@ This example command will mirror a 128x128 pixel square from the top left of the
|
|||
|
||||
import click
|
||||
import numpy as np
|
||||
from PIL import ImageGrab
|
||||
from PIL import Image, ImageGrab
|
||||
|
||||
import adafruit_blinka_raspberry_pi5_piomatter as piomatter
|
||||
import adafruit_blinka_raspberry_pi5_piomatter.click as piomatter_click
|
||||
from adafruit_blinka_raspberry_pi5_piomatter.pixelmappers import simple_multilane_mapper
|
||||
|
||||
RESAMPLE_MAP = {
|
||||
"nearest": Image.NEAREST,
|
||||
"bilinear": Image.BILINEAR,
|
||||
"lanczos": Image.LANCZOS,
|
||||
"bicubic": Image.BICUBIC
|
||||
}
|
||||
|
||||
|
||||
@click.command
|
||||
@click.option("--mirror-region", help="Region of X display to mirror. Comma seperated x,y,w,h. "
|
||||
"Default will mirror entire display.", default="")
|
||||
@click.option("--x-display", help="The X display to mirror. Default is :0", default=":0")
|
||||
@click.option("--resample-method", type=click.Choice(RESAMPLE_MAP), default="nearest",
|
||||
help="The resample method for PIL to use when resizing the screen image. Default is nearest")
|
||||
@piomatter_click.standard_options(n_lanes=2, n_temporal_planes=0)
|
||||
def main(width, height, serpentine, rotation, pinout, n_planes,
|
||||
n_temporal_planes, n_addr_lines, n_lanes, mirror_region, x_display):
|
||||
n_temporal_planes, n_addr_lines, n_lanes, mirror_region, x_display, resample_method):
|
||||
|
||||
if n_lanes != 2:
|
||||
pixelmap = simple_multilane_mapper(width, height, n_addr_lines, n_lanes)
|
||||
geometry = piomatter.Geometry(width=width, height=height, n_planes=n_planes, n_addr_lines=n_addr_lines,
|
||||
|
|
@ -56,13 +66,14 @@ def main(width, height, serpentine, rotation, pinout, n_planes,
|
|||
while True:
|
||||
img = ImageGrab.grab(xdisplay=x_display)
|
||||
if mirror_region is not None:
|
||||
img = img.crop((mirror_region[0], mirror_region[1], # left,top
|
||||
mirror_region[0] + mirror_region[2], # right
|
||||
img = img.crop((mirror_region[0], mirror_region[1], # left,top
|
||||
mirror_region[0] + mirror_region[2], # right
|
||||
mirror_region[1] + mirror_region[3])) # bottom
|
||||
img = img.resize((width, height))
|
||||
img = img.resize((width, height), RESAMPLE_MAP[resample_method])
|
||||
|
||||
framebuffer[:, :] = np.array(img)
|
||||
matrix.show()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
|
|
|||
Loading…
Reference in a new issue