Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from PIL import Image
- from PIL import ImageFont
- from PIL import ImageDraw
- import datetime
- import os
- import tkinter
- import sys
- from random import randint
- #-------------#
- # logic #
- #-------------#
- def create():
- i = 0
- '''
- istart = startinput.get()
- iend = endinput.get() + 1
- if istart <= 0:
- istart = 1
- if iend <=0:
- iend = 1
- if istart >= iend:
- iend = istart + 1
- '''
- #--------------------------------#
- #-----------VARIABLES------------#
- #--------------------------------#
- #arbitrary filename - can now open w/e
- img = Image.open(filenameinput.get())
- #multiplier decides how much the image should scale up
- ratiomultiplier = ratioinput.get()
- #amount of times to go through code
- iterations = startinput.get()
- #unused
- draw = ImageDraw.Draw(img)
- #getting the width and height of the ORIGINAL document only ONCE
- initwidth = img.size[0]
- initheight = img.size[1]
- #the ratio is important - it multiplies to the width scale up factor to keep everything in aspect
- if aspectinput.get() == 1:
- ratio = initwidth/initheight
- else:
- ratio = 1
- if randominput.get()==1:
- canrandom = True
- else:
- canrandom = False
- #
- #
- # start loop
- #
- #
- #iterating code
- while i < iterations:
- if canrandom == True:
- random = randint(1,2)
- else:
- random = 1
- #resizing image
- img = img.resize((initwidth + int(((i*ratiomultiplier)*ratio)*random), initheight + i*ratiomultiplier*random), Image.ANTIALIAS)
- #downsizes image a little bit if set to true. Basically blurrier.
- if truetext.get() == 1:
- img = img.resize((img.size[0] - int(((i*5)*ratio)), img.size[1] - i*5), Image.ANTIALIAS)
- print ('.....finished subiteration')
- if not limitinput.get() <= 0:
- if img.size[0] >= limitinput.get():
- img = img.resize((limitinput.get(), int(limitinput.get()/ratio)), Image.ANTIALIAS)
- #adding to iteration
- i += 1
- print ('finished iteration ' + str(i))
- #saves file as unique "modified.(number)"
- for k in range(1,sys.maxsize):
- if not os.path.isfile(foldernameinput.get() + 'modified' + str(k) + '.jpg'):
- img.save(foldernameinput.get() + 'modified' + str(k) + '.jpg')
- print ('Saved as ' + foldernameinput.get() + 'modified' + str(k) + '.jpg')
- return False
- #-------------#
- # interface #
- #-------------#
- mGui = tkinter.Tk()
- mGui.title('Image Placeholder Creator')
- #declaring vars
- #number of iterations = startinput
- startinput = tkinter.IntVar()
- startinput.set(150)
- #
- tkinter.Label(mGui, text='Iterations').pack()
- tkinter.Entry(mGui, textvariable=startinput).pack()
- #scalar value
- ratioinput = tkinter.IntVar()
- ratioinput.set(10)
- #
- tkinter.Label(mGui, text='Scale Amount Multiplier').pack()
- tkinter.Entry(mGui, textvariable=ratioinput).pack()
- #filename
- filenameinput = tkinter.StringVar()
- filenameinput.set('default.jpg')
- #
- tkinter.Label(mGui, text='Filename').pack()
- tkinter.Entry(mGui, textvariable=filenameinput).pack()
- #filename
- foldernameinput = tkinter.StringVar()
- foldernameinput.set('')
- #
- tkinter.Label(mGui, text='Savefolder (Blank for Local) (include slashes)').pack()
- tkinter.Entry(mGui, textvariable=foldernameinput).pack()
- #limitinput
- limitinput = tkinter.IntVar()
- limitinput.set(0)
- #
- tkinter.Label(mGui, text='Limit to width in pixels').pack()
- tkinter.Entry(mGui, textvariable=limitinput).pack()
- #truetext = downsizer (subiteration)
- truetext = tkinter.IntVar()
- truetext.set(0)
- #
- tkinter.Checkbutton(mGui, variable=truetext, text="Scale up than Scale down", onvalue=1, offvalue=0).pack()
- #aspectinput
- aspectinput = tkinter.IntVar()
- aspectinput.set(1)
- #
- tkinter.Checkbutton(mGui, variable=aspectinput, text="Correct Aspect Ratio", onvalue=1, offvalue=0).pack()
- #randominput
- randominput = tkinter.IntVar()
- randominput.set(0)
- #
- tkinter.Checkbutton(mGui, variable=randominput, text="Add randomness?", onvalue=1, offvalue=0).pack()
- #submit code!
- tkinter.Button(mGui, text='SUBMIT', command = create).pack()
- #///////////////#
- #////WINDOWS////#
- #///////////////#
- mGui.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement