Advertisement
Guest User

Python Art

a guest
Sep 22nd, 2014
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.39 KB | None | 0 0
  1. from PIL import Image
  2. from PIL import ImageFont
  3. from PIL import ImageDraw
  4. import datetime
  5. import os
  6. import tkinter
  7. import sys
  8. from random import randint
  9.  
  10.  
  11. #-------------#
  12. #    logic    #
  13. #-------------#
  14.  
  15. def create():
  16.  
  17.     i = 0
  18.     '''
  19.    istart = startinput.get()
  20.    iend = endinput.get() + 1
  21.  
  22.    if istart <= 0:
  23.        istart = 1
  24.    if iend <=0:
  25.        iend = 1
  26.    if istart >= iend:
  27.        iend = istart + 1
  28.    '''
  29.  
  30.  
  31.     #--------------------------------#
  32.     #-----------VARIABLES------------#
  33.     #--------------------------------#
  34.  
  35.     #arbitrary filename - can now open w/e
  36.     img = Image.open(filenameinput.get())
  37.  
  38.     #multiplier decides how much the image should scale up
  39.     ratiomultiplier = ratioinput.get()
  40.  
  41.     #amount of times to go through code
  42.     iterations = startinput.get()
  43.  
  44.     #unused
  45.     draw = ImageDraw.Draw(img)
  46.  
  47.     #getting the width and height of the ORIGINAL document only ONCE
  48.     initwidth = img.size[0]
  49.     initheight = img.size[1]
  50.  
  51.     #the ratio is important - it multiplies to the width scale up factor to keep everything in aspect
  52.     if aspectinput.get() == 1:
  53.         ratio = initwidth/initheight
  54.     else:
  55.         ratio = 1
  56.  
  57.     if randominput.get()==1:
  58.         canrandom = True
  59.     else:
  60.         canrandom = False
  61.  
  62.        
  63.     #
  64.     #
  65.     #   start loop
  66.     #
  67.     #
  68.     #iterating code
  69.     while i < iterations:
  70.  
  71.         if canrandom == True:
  72.             random = randint(1,2)
  73.         else:
  74.             random = 1
  75.  
  76.         #resizing image
  77.         img = img.resize((initwidth + int(((i*ratiomultiplier)*ratio)*random), initheight + i*ratiomultiplier*random), Image.ANTIALIAS)
  78.  
  79.         #downsizes image a little bit if set to true.  Basically blurrier.
  80.         if truetext.get() == 1:
  81.             img = img.resize((img.size[0] - int(((i*5)*ratio)), img.size[1] - i*5), Image.ANTIALIAS)
  82.             print ('.....finished subiteration')
  83.  
  84.         if not limitinput.get() <= 0:
  85.             if img.size[0] >= limitinput.get():
  86.                 img = img.resize((limitinput.get(), int(limitinput.get()/ratio)), Image.ANTIALIAS)
  87.  
  88.  
  89.         #adding to iteration
  90.         i += 1
  91.         print ('finished iteration ' + str(i))
  92.  
  93.     #saves file as unique "modified.(number)"
  94.     for k in range(1,sys.maxsize):
  95.         if not os.path.isfile(foldernameinput.get() + 'modified' + str(k) + '.jpg'):
  96.                 img.save(foldernameinput.get() + 'modified' + str(k) + '.jpg')
  97.                 print ('Saved as ' + foldernameinput.get() + 'modified' + str(k) + '.jpg')
  98.                 return False      
  99.  
  100. #-------------#
  101. #  interface  #
  102. #-------------#
  103.  
  104. mGui = tkinter.Tk()
  105. mGui.title('Image Placeholder Creator')
  106.  
  107.  
  108. #declaring vars
  109. #number of iterations = startinput
  110. startinput = tkinter.IntVar()
  111. startinput.set(150)
  112. #
  113. tkinter.Label(mGui, text='Iterations').pack()
  114. tkinter.Entry(mGui, textvariable=startinput).pack()
  115.  
  116.  
  117.  
  118. #scalar value
  119. ratioinput = tkinter.IntVar()
  120. ratioinput.set(10)
  121. #
  122. tkinter.Label(mGui, text='Scale Amount Multiplier').pack()
  123. tkinter.Entry(mGui, textvariable=ratioinput).pack()
  124.  
  125.  
  126.  
  127.  
  128. #filename
  129. filenameinput = tkinter.StringVar()
  130. filenameinput.set('default.jpg')
  131. #
  132. tkinter.Label(mGui, text='Filename').pack()
  133. tkinter.Entry(mGui, textvariable=filenameinput).pack()
  134.  
  135.  
  136.  
  137. #filename
  138. foldernameinput = tkinter.StringVar()
  139. foldernameinput.set('')
  140. #
  141. tkinter.Label(mGui, text='Savefolder (Blank for Local) (include slashes)').pack()
  142. tkinter.Entry(mGui, textvariable=foldernameinput).pack()
  143.  
  144.  
  145.  
  146. #limitinput
  147. limitinput = tkinter.IntVar()
  148. limitinput.set(0)
  149. #
  150. tkinter.Label(mGui, text='Limit to width in pixels').pack()
  151. tkinter.Entry(mGui, textvariable=limitinput).pack()
  152.  
  153.  
  154.  
  155.  
  156.  
  157. #truetext = downsizer (subiteration)
  158. truetext = tkinter.IntVar()
  159. truetext.set(0)
  160. #
  161. tkinter.Checkbutton(mGui, variable=truetext, text="Scale up than Scale down", onvalue=1, offvalue=0).pack()
  162.  
  163.  
  164.  
  165.  
  166. #aspectinput
  167. aspectinput = tkinter.IntVar()
  168. aspectinput.set(1)
  169. #
  170. tkinter.Checkbutton(mGui, variable=aspectinput, text="Correct Aspect Ratio", onvalue=1, offvalue=0).pack()
  171.  
  172.  
  173.  
  174. #randominput
  175. randominput = tkinter.IntVar()
  176. randominput.set(0)
  177. #
  178. tkinter.Checkbutton(mGui, variable=randominput, text="Add randomness?", onvalue=1, offvalue=0).pack()
  179.  
  180.  
  181.  
  182.  
  183.  
  184. #submit code!
  185. tkinter.Button(mGui, text='SUBMIT', command = create).pack()
  186.  
  187.  
  188.  
  189. #///////////////#
  190. #////WINDOWS////#
  191. #///////////////#
  192. mGui.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement