#!/usr/bin/env python

import picamera
from time import sleep
import time
import RPi.GPIO as GPIO
from os import system
import os
import random, string

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

########################
### Variables Config ###
########################
num_pics = 8 #Number of pictures to take in Gif
gif_delay = 15 #How much delay in between those pictures (in milliseconds)

camera = picamera.PiCamera()
camera.resolution = (540, 405)
camera.rotation = 90
camera.brightness = 70
camera.image_effect = 'none'

print('System Ready')

def random_generator(size=10, chars=string.ascii_uppercase + string.digits):
    return ''.join(random.choice(chars) for x in range(size))

randomstring = random_generator()

print('Gif Started')

for i in range(num_pics):
    camera.capture('__image4gif{0:04d}.jpg'.format(i))

filename = './gifs/' + randomstring + '-0'

print('Processing')

graphicsmagick = "gm convert -delay " + str(gif_delay) + " " + "__image4gif*.jpg " + filename + ".gif"
os.system(graphicsmagick)
os.system('rm __image4gif*.jpg')

print('Done')
print('System Ready')