Skip to content

Instantly share code, notes, and snippets.

@linusheck
Created December 5, 2017 13:20
Show Gist options
  • Save linusheck/9ce4f99b875a5fe7eef84b74cbfa4b01 to your computer and use it in GitHub Desktop.
Save linusheck/9ce4f99b875a5fe7eef84b74cbfa4b01 to your computer and use it in GitHub Desktop.
from PIL import Image, ImageDraw, ImageFilter, ImageFont
from math import sin, cos, pi
LEN_HOUR = 150
LEN_MINUTE = 250
font = ImageFont.truetype("helvetica.ttf", 25)
title = Image.open("title.png")
for hour in range(12):
for minute in range(60):
minute_as_string = ("0" if minute < 10 else "") + str(minute)
hour_as_string = "12" if hour == 0 else str(hour)
im = Image.new("RGB", (740, 800), color=(255, 255, 255))
hour_deg = ((hour + minute / 60) / 12) * 2 * pi
minute_deg = (minute / 60) * 2 * pi
draw = ImageDraw.Draw(im)
draw.arc((40, 40, 700, 700), 0, 360, fill=(0, 0, 0))
draw.line((370, 370, 370 + sin(hour_deg) * LEN_HOUR, 370 - cos(hour_deg) * LEN_HOUR), fill=(0, 0, 0), width=20)
draw.line((370, 370, 370 + sin(minute_deg) * LEN_MINUTE, 370 - cos(minute_deg) * LEN_MINUTE), fill=(0, 0, 0),
width=10)
draw.text((40, 740), "(it is " + hour_as_string + ":" + minute_as_string + " my dudes)", fill=(0, 0, 0),
font=font)
del draw
im = im.filter(ImageFilter.EDGE_ENHANCE_MORE)
out = Image.new("RGB", (740, 900))
out.paste(title, (0, 0))
out.paste(im, (0, 124))
out.save("clock/" + str(hour) + "_" + str(minute) + ".png")
del im, out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment