pull/50/head
Shawn-Shan 2020-07-26 14:44:31 -05:00
rodzic d5f9e8b459
commit f1c7e0c321
3 zmienionych plików z 0 dodań i 113 usunięć

Wyświetl plik

@ -1 +0,0 @@
Under development...

Wyświetl plik

@ -1,112 +0,0 @@
'''
Simple GUI to facilitate interaction with Fawkes.
'''
import threading
from tkinter import Tk, BOTH, StringVar, Canvas, PhotoImage, CENTER, NW
from tkinter.filedialog import askopenfilenames
from tkinter.ttk import Frame, Label, Button
from PIL import ImageTk, Image
import fawkes.protection
class UI(Frame):
def __init__(self):
super().__init__()
self.my_fawkes = fawkes.protection.Fawkes("high_extract", '0', 1)
self.var = StringVar()
self.var.set('Select images to cloak!')
self.img_paths = './imgs'
self.initUI()
def initUI(self):
self.master.title("Fawkes")
self.master.configure(bg='white')
self.pack(fill=BOTH, expand=1)
# fawkes image
canvas = Canvas(self, width=110, height=150)
orig = Image.open("fawkes_mask.jpg")
resized = orig.resize((110,150), Image.ANTIALIAS)
img = ImageTk.PhotoImage(resized)
canvas.create_image(0,0, image=img, anchor=NW)
canvas.image = img
canvas.pack()
# open button
btn_Open = Button(self,
text='Choose image(s) to cloak',
width=25,
command=self.select_path)
btn_Open.pack()
# run button
btn_Run = Button(self,
text='Cloak images',
width=25,
command=lambda: thread_it(self.my_fawkes.run_protection, self.img_paths))
btn_Run.pack()
# # save button
# btn_Save = Button(self,
# text='Save cloaked image(s)',
# width=25,
# command=self.save_images)
# btn_Save.pack()
# Progress info
Label_Show = Label(self,
textvariable=self.var,
font=('Arial', 13), width=50)
Label_Show.configure(anchor="center")
Label_Show.pack()
def select_path(self):
self.img_paths = askopenfilenames(filetypes=[('image', "*.gif *.jpg *.png")])
self.var.set('Images chosen.')
def save_images(self):
print(self.img_paths)
root = Tk()
root.title('window')
root.geometry('200x230')
app = UI()
def main():
root.configure(bg='white')
root.mainloop()
def thread_it(func, *args):
app.var.set('Cloaking in progress.')
t = threading.Thread(target=func, args=args)
t.setDaemon(True)
t.start()
while t.is_alive():
pass
app.var.set('Cloaking finished.')
def thread_test():
app.var.set('Cloaking in progress.')
def func(test):
print(test)
args = "testing"
t = threading.Thread(target=func, args=args)
t.setDaemon(True)
t.start()
while t.is_alive():
pass
t.sleep(1)
app.var.set('Cloaking finished.')
if __name__ == '__main__':
main()

Plik binarny nie jest wyświetlany.

Przed

Szerokość:  |  Wysokość:  |  Rozmiar: 132 KiB