-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate.py
More file actions
executable file
·71 lines (58 loc) · 2.31 KB
/
generate.py
File metadata and controls
executable file
·71 lines (58 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from datetime import datetime, timezone
import PIL, random, sys
from PIL import Image, ImageDraw
origDimension = 1500
r = lambda: random.randint(50,255)
rc = lambda: ('#%02X%02X%02X' % (r(),r(),r()))
listSym = []
def create_square(border, draw, randColor, element, size):
if (element == int(size/2)):
draw.rectangle(border, randColor)
elif (len(listSym) == element+1):
draw.rectangle(border,listSym.pop())
else:
listSym.append(randColor)
draw.rectangle(border, randColor)
def create_invader(border, draw, size):
x0, y0, x1, y1 = border
squareSize = (x1-x0)/size
randColors = [rc(), rc(), rc(), (0,0,0), (0,0,0), (0,0,0)]
incrementer = 1
element = 0
for y in range(0, size):
incrementer *= -1
element = 0
for x in range(0, size):
topLeftX = x*squareSize + x0
topLeftY = y*squareSize + y0
botRightX = topLeftX + squareSize
botRightY = topLeftY + squareSize
create_square((topLeftX, topLeftY, botRightX, botRightY), draw, random.choice(randColors), element, size)
if (element == int(size/2) or element == 0):
incrementer *= -1;
element += incrementer
def main(size, invaders, imgSize):
origDimension = imgSize
origImage = Image.new('RGB', (origDimension, origDimension))
draw = ImageDraw.Draw(origImage)
invaderSize = origDimension/invaders
print(invaderSize)
padding = invaderSize/size
print(padding)
# Will eventually create many
finalBotRightX = 0
finalBotRightY = 0
for x in range(0, invaders):
for y in range(0, invaders):
topLeftX = x*invaderSize + padding
topLeftY = y*invaderSize + padding
botRightX = topLeftX + invaderSize - padding*2
botRightY = topLeftY + invaderSize - padding*2
finalBotRightX = botRightX
finalBotRightY = botRightY
create_invader((topLeftX, topLeftY, botRightX, botRightY), draw, size)
utc_dt = datetime.now(timezone.utc)
iso_date = utc_dt.strftime('%Y%m%dT%H%M%S')
origImage.save(f"export/{iso_date}_invader-"+str(size)+"x"+str(size)+"-"+str(invaders)+"-"+str(imgSize)+".jpg")
if __name__ == "__main__":
main(int(sys.argv[1]), int(sys.argv[2]), int(sys.argv[3]))