import os

from PIL import Image, ImageDraw
from subprocess import call

colors = [0,64,128,192,255]

def filename(num):
    name = "00000" + str(num)
    name = "image-"+name[-5:]+".png"
    return name

def ffmpeg(num):
    call('ffmpeg -loglevel panic -hide_banner -r 10 -i image-%5d.png -vcodec mjpeg -vf format=yuv420p -y dot'+ str(num)+'.avi')
    print ('dot'+ str(num)+'.avi')

for file in os.listdir():
    if file.endswith(".png"):
        os.remove(file)

num = 0
r,g,b = (255,255,255)
for x in colors:
    for y in colors:
        for z in colors:
            img = Image.new('RGB', (400,400), (r,g,b))
            draw = ImageDraw.Draw(img)
            draw.ellipse((20, 20, 380, 380), fill = (x,y,z), outline = (x,y,z))
            if hex(r)+hex(g)+hex(b) != hex(x)+hex(y)+hex(z):
                num += 1
                print (filename(num))
                img.save(filename(num))


ffmpeg (1)
for j in range (2, num+1):
    os.rename (filename(1), filename(99999))
    for i in range (2, num+1):
        fromname = filename (i)
        toname   = filename (i-1)
        os.rename (fromname, toname)
    os.rename (filename(99999), filename(num))
    ffmpeg (j)
