import time

from PIL import Image, ImageDraw, ImageFont


def testScreen(
    x=1280, y=720,
    image=None,
    stripeList=["lightgrey",
                "yellow",
                "cyan",
                "lightgreen",
                "magenta",
                "red",
                "blue"]):

    if image is None:
        image = Image.new("RGB", (x, y))

    draw = ImageDraw.Draw(image)

    for i, stripe in enumerate(stripeList):
        draw.rectangle((
            (x/len(stripeList)) * i, 0,
            (x/len(stripeList)) * (i + 1), x),
            fill=stripe)

    draw.rectangle((
        0, y - (y/3),
        x, y),
        fill="black")

    for i, stripe in enumerate(stripeList):
        if i % 2 != 0:
            _fill = "black"
        else:
            _fill = stripeList[len(stripeList) - i - 1]

        draw.rectangle((
            (x/len(stripeList)) * i, y - (y/3.1),
            (x/len(stripeList)) * (i + 1), y - (y/4.9)),
            fill=_fill)

        draw.rectangle((
            (x/(len(stripeList)/4)), y - (y/5.3),
            (0), y),
            fill="darkblue")

        draw.rectangle((
            (x/(len(stripeList)/2)), y - (y/5.3),
            (x/(len(stripeList)/1)), y),
            fill="white")

    return image


def drawText(image):
    # get a font
    fnt = ImageFont.truetype("FreeMono.ttf", 50)
    # get a drawing context
    d = ImageDraw.Draw(image)

    # draw multiline text
    d.multiline_text((10, 10), str(time.time()), font=fnt, fill=(0, 0, 0))

    return image


if __name__ == '__main__':
    blank_screen = testScreen()

    while True:
        annotated_image = drawText(blank_screen.copy())

        annotated_image.save('Test-Pattern.png')

        time.sleep(2)

    # testScreen().save('Test-Pattern.png')
