Cleaned up some stuff

Very nice
This commit is contained in:
Zaponium 2023-12-10 22:24:58 +01:00
commit 1d69adac61
4 changed files with 59 additions and 93 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 MiB

View file

@ -1,36 +1,34 @@
from PIL import Image
from math import ceil
from Dicts import MORSE_DICT, ALPH_DICT
from dicts import MORSE_DICT, ALPH_DICT
import os
print(MORSE_DICT["A"])
class Func:
def __init__(self,):
def __init__(self):
if os.path.exists("error.txt"):
os.remove("error.txt")
self.errortext = open('error.txt', 'a')
self.errortext.writelines("INITIATING\n")
self.errortext.write("INITIATING\n")
def output(self, string, mode):
string = str(string)
if mode == "T" or mode == "B": print(string)
self.errortext = open('error.txt', 'a')
if mode == "F" or mode == "B": self.errortext.writelines(string + "\n")
def close(self):
self.errortext.close()
iof = Func()
class Main:
def __init__(self):
self.intro()
def intro(self):
self.choice_loop()
def choice_loop(self):
print("Choose operation:\nTitle: input\nConvert Image: convert\nRead Encrypted Image: read\nExit Program: exit\n")
match input():
match input("Choose operation:\nTitle: input\nConvert Image: convert\nRead Encrypted Image: read\nExit Program: exit\n"):
case "convert":
print("Welcome to the Shush Converter\nPlease enter the name of your image, including the extension")
self.path_img = "./input/" + input()
@ -48,41 +46,36 @@ class Main:
exit()
case _:
print("Invalid Input. Please make sure you spelled correctly, and used lower case letters thoughout.")
class Converter:
def run(self):
self.loadObjects()
self.convertFunction()
def __init__(self, image_path, text_path):
self.img_path = image_path
self.txt_path = text_path
self.morse_text = ""
self.img = Image.open(self.img_path).convert("RGBA")
def run(self):
self.load_objects()
self.convert_function()
def loadObjects(self):
def load_objects(self):
self.imagewidth, self.imageheight = self.img.size
with open(self.txt_path) as x:
self.raw_text = x.readlines()
iof.output(self.raw_text, "B")
for line in self.raw_text:
for letter in line:
self.morse_text += (MORSE_DICT[letter.upper()] + " ")
self.morse_text += " ".join(MORSE_DICT[letter.upper()] for letter in line) + " "
iof.output(self.morse_text, "B")
def convertFunction(self):
incrementer,x,y = 0,0,0
for letter in self.morse_text:
incrementer += 1
def convert_function(self):
x, y = 0, 0
for incrementer, letter in enumerate(self.morse_text):
if x < self.imagewidth - 1:
x += 1
else:
y += 1
x = 0
self.R, self.G, self.B = self.img.getpixel((x,y))[0], self.img.getpixel((x,y))[1], self.img.getpixel((x,y))[2]
self.R, self.G, self.B, _ = self.img.getpixel((x,y))
match letter:
case ".":
self.img.putpixel((x,y), (self.R, self.G, self.B, 254))
@ -93,53 +86,54 @@ class Converter:
case "|":
continue
iof.output(f"{self.img.getpixel((x,y))}", "F")
iof.output(str(incrementer/len(self.morse_text)*100) + "%", "F")
self.img.save("converted_image.png")
iof.output(f"{incrementer/len(self.morse_text)*100}%", "F")
self.img.save(f"output/{input('Please put your Image\'s output name: ')}.png")
class Reader:
def run(self):
self.loadObjects()
self.readFunction()
self.out = open('output/text.txt', 'a')
self.out.writelines(self.normal_text)
def __init__(self, image_path):
self.img_path = image_path
self.normal_text = ""
self.morse_text = ""
def loadObjects(self):
def run(self):
self.load_objects()
self.read_function()
self.ender_function()
self.out = open('output/text.txt', 'a')
self.out.writelines(self.normal_text)
def load_objects(self):
self.img = Image.open(self.img_path).convert("RGBA")
self.imagewidth, self.imageheight = self.img.size
def readFunction(self):
def read_function(self):
escaperange = 0
ended = False
for y in range(self.imageheight):
for x in range(self.imagewidth):
if not ended == True:
iof.output(f"At pixel: {x},{y}\nWith color: {self.img.getpixel((x,y))}", "F")
match self.img.getpixel((x,y))[3]:
case (254):
iof.output("Found .", "B")
self.morse_text += "."
case (253):
iof.output("Found -", "B")
self.morse_text += "-"
case _:
if escaperange == 0:
ii = self.futurecheck(x,y)
if ii == 2:
escaperange = 2
self.morse_text += " | "
elif ii == 1:
self.morse_text += " "
else:
ended = True
iof.output("Ended at: " + str(x) + "," + str(y), "B")
iof.output(f"At pixel: {x},{y}\nWith color: {self.img.getpixel((x,y))}", "F")
match self.img.getpixel((x,y))[3]:
case 254:
iof.output("Found .", "B")
self.morse_text += "."
case 253:
iof.output("Found -", "B")
self.morse_text += "-"
case _:
if escaperange == 0:
ii = self.future_check(x,y)
if ii == 2:
escaperange = 2
self.morse_text += " | "
elif ii == 1:
self.morse_text += " "
else:
escaperange -= 1
iof.output(f"Ended at: {x},{y}", "B")
return
else:
escaperange -= 1
def ender_function(self):
iof.output(self.morse_text, "B")
sequence = ""
for letter in self.morse_text:
@ -154,7 +148,7 @@ class Reader:
iof.output(self.normal_text, "B")
def futurecheck(self,x,y):
def future_check(self,x,y):
endchecker = 0
a = 0
b = 0
@ -162,14 +156,14 @@ class Reader:
if x + a < self.imagewidth:
if self.img.getpixel((x + a, y))[3] == 255:
endchecker += 1
iof.output("Endchecker at: " + str(endchecker) + "\nUsing pixel: " + str(self.img.getpixel((x + a, y))) + "\nAt position: " + str(x+a) + "," + str(y), "F")
iof.output(f"Endchecker at: {endchecker}\nUsing pixel: {self.img.getpixel((x + a, y))}\nAt position: {x+a},{y}", "F")
a += 1
else:
a = 11
else:
if self.img.getpixel((b, y + 1))[3] == 255:
endchecker += 1
iof.output(f"Endchecker at: {str(endchecker)}\nUsing pixel: {str(self.img.getpixel((b, y + 1)))}\nAt position: {str(b)},{str(y+1)}", "F")
iof.output(f"Endchecker at: {endchecker}\nUsing pixel: {self.img.getpixel((b, y + 1))}\nAt position: {b},{y+1}", "F")
b += 1
else:
b = 11
@ -192,6 +186,6 @@ class Reader:
iof.output("Adding letter separation", "F")
return 1
Starter = Main()
Starter.intro()
if __name__ == "__main__":
Starter = Main()
iof.close()

View file

@ -1,21 +0,0 @@
LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT. SED DIAM LIGULA, MALESUADA AT EGESTAS EU, VULPUTATE ID ORCI. MAURIS VENENATIS MAURIS VITAE SEM FEUGIAT POSUERE. SED INTERDUM NULLA BLANDIT MALESUADA ELEMENTUM. CLASS APTENT TACITI SOCIOSQU AD LITORA TORQUENT PER CONUBIA NOSTRA, PER INCEPTOS HIMENAEOS. ALIQUAM ERAT VOLUTPAT. PELLENTESQUE ARCU LECTUS, FACILISIS ID CONGUE VITAE, ACCUMSAN ET ORCI. VESTIBULUM ULTRICIES SED EST NEC MATTIS. DONEC SIT AMET LEO NON RISUS PLACERAT FINIBUS. SED VARIUS VESTIBULUM MI NEC LAOREET. NUNC FRINGILLA ELEIFEND MASSA, A FRINGILLA TORTOR CONSEQUAT FINIBUS. MAECENAS ARCU TORTOR, VESTIBULUM EU LEO ID, COMMODO VIVERRA NISL. MORBI EST MASSA, CURSUS ID CONVALLIS QUIS, CONGUE QUIS ORCI.
PRAESENT IN LIGULA BLANDIT, DICTUM LECTUS VARIUS, TRISTIQUE MAURIS. PRAESENT UT EST ID ODIO EUISMOD EFFICITUR. DONEC QUIS EST LUCTUS, FRINGILLA ODIO NON, PHARETRA SAPIEN. DUIS TINCIDUNT NIBH QUAM, NEC IACULIS LACUS LAOREET EU. NAM DICTUM IPSUM EU NEQUE CONSEQUAT SOLLICITUDIN. FUSCE CONSECTETUR SAPIEN SIT AMET LOBORTIS MAXIMUS. MAECENAS VITAE VOLUTPAT RISUS. PELLENTESQUE HABITANT MORBI TRISTIQUE SENECTUS ET NETUS ET MALESUADA FAMES AC TURPIS EGESTAS. DONEC LOBORTIS ET LACUS AC TINCIDUNT. MAURIS CURSUS EROS EGET MASSA IMPERDIET VENENATIS. VESTIBULUM EGET TURPIS AC LECTUS SOLLICITUDIN PORTTITOR ID SED EST. SED ET MOLESTIE ELIT. QUISQUE ULTRICIES ANTE EU IMPERDIET IMPERDIET.
NULLAM HENDRERIT DUI ID PLACERAT SODALES. QUISQUE AT ANTE ELEMENTUM, VOLUTPAT VELIT A, VEHICULA SAPIEN. UT TEMPOR SED VELIT NEC RHONCUS. AENEAN VEL SEM CONVALLIS, ULTRICES URNA EGET, EUISMOD LACUS. CURABITUR QUIS SUSCIPIT EST, ID MALESUADA LEO. QUISQUE EUISMOD LACUS NEQUE, AT TINCIDUNT IPSUM IACULIS SIT AMET. NAM IMPERDIET LOBORTIS VELIT ID RHONCUS. NUNC TEMPUS VITAE ARCU A CONVALLIS. CURABITUR CONSEQUAT ORCI LECTUS, VEL FEUGIAT TURPIS BLANDIT A.
SED HENDRERIT DICTUM DOLOR A PORTTITOR. NULLAM ET CONSECTETUR LEO, UT LOBORTIS MASSA. SUSPENDISSE POTENTI. NULLAM MI TORTOR, MAXIMUS A GRAVIDA SED, EFFICITUR ID MI. NULLA LOBORTIS DUI VITAE LEO BLANDIT, EGET BIBENDUM AUGUE HENDRERIT. INTEGER ID TURPIS VITAE IPSUM RHONCUS MALESUADA. SED ERAT LOREM, TEMPUS EU VELIT NEC, TEMPUS DICTUM DUI. MORBI TRISTIQUE A RISUS ET RHONCUS. UT PLACERAT, NUNC NON FRINGILLA BLANDIT, LOREM TELLUS IACULIS SAPIEN, IN SAGITTIS URNA LIBERO QUIS ORCI. PROIN PORTA INTERDUM NIBH QUIS HENDRERIT. NAM AC MI TEMPUS, EUISMOD LIGULA QUIS, LACINIA LOREM. NULLA IN BLANDIT MAGNA. NUNC UT SAPIEN QUIS LACUS TEMPOR ULLAMCORPER VIVERRA VITAE LIBERO. NAM IN DIAM AT LECTUS GRAVIDA FINIBUS.
QUISQUE SCELERISQUE ARCU TURPIS, AC TRISTIQUE MAGNA IMPERDIET VEL. CURABITUR SIT AMET FERMENTUM IPSUM, AC TINCIDUNT ANTE. VESTIBULUM PORTA IMPERDIET METUS EU ULTRICIES. PELLENTESQUE VIVERRA EX VITAE AUCTOR IMPERDIET. CRAS IN MASSA SED EST COMMODO PHARETRA. AENEAN A ODIO VEL FELIS MAXIMUS VIVERRA. MORBI ALIQUAM ODIO SED NULLA DAPIBUS, ET FERMENTUM SAPIEN SUSCIPIT. SED DICTUM VENENATIS MAGNA QUIS DICTUM. SED PRETIUM EUISMOD INTERDUM. NUNC MOLLIS NISI AT NEQUE SUSCIPIT SCELERISQUE. SUSPENDISSE VEHICULA ULLAMCORPER NIBH EU VENENATIS. NUNC ALIQUET, LECTUS A TINCIDUNT EFFICITUR, MAURIS AUGUE VULPUTATE MAURIS, AC PHARETRA NISL DIAM NON EROS. NULLAM IN IPSUM A AUGUE ALIQUAM FRINGILLA UT SIT AMET DUI. ETIAM DAPIBUS PULVINAR SODALES. NULLAM ALIQUET EUISMOD IPSUM, SIT AMET MALESUADA NEQUE MOLESTIE NEC. FUSCE IACULIS DAPIBUS LIGULA, UT MATTIS JUSTO PLACERAT AC.
DONEC AT SOLLICITUDIN MAURIS. INTEGER POSUERE FRINGILLA NEQUE EU CONSEQUAT. ORCI VARIUS NATOQUE PENATIBUS ET MAGNIS DIS PARTURIENT MONTES, NASCETUR RIDICULUS MUS. DUIS ORCI FELIS, ULTRICES AT DOLOR NEC, SEMPER TEMPOR DIAM. NUNC VEL RISUS EU LACUS IACULIS COMMODO IN TINCIDUNT LACUS. DONEC PHARETRA LIGULA AC ALIQUAM LUCTUS. MAECENAS EGESTAS SODALES LECTUS, UT TINCIDUNT NUNC SODALES ID. NULLAM EU SEM EU LACUS PORTTITOR DAPIBUS. PHASELLUS EGET TEMPUS DUI. PROIN GRAVIDA SOLLICITUDIN LEO, ID SOLLICITUDIN NUNC CONVALLIS NON. PROIN POSUERE IPSUM PURUS, A TEMPOR DOLOR ALIQUET A. DUIS NON LAOREET NUNC.
MAECENAS EFFICITUR NUNC VITAE HENDRERIT VESTIBULUM. SED QUIS FELIS AUGUE. MAECENAS PHARETRA, METUS AT POSUERE CONSECTETUR, MAGNA TORTOR RUTRUM EST, SIT AMET SOLLICITUDIN URNA AUGUE NON EST. LOREM IPSUM DOLOR SIT AMET, CONSECTETUR ADIPISCING ELIT. CLASS APTENT TACITI SOCIOSQU AD LITORA TORQUENT PER CONUBIA NOSTRA, PER INCEPTOS HIMENAEOS. NULLAM VULPUTATE SCELERISQUE FELIS. NULLAM PORTTITOR CONSECTETUR LIGULA NON TEMPUS. NUNC SED EX FAUCIBUS, LUCTUS METUS AT, ELEMENTUM NISI. UT SEMPER DAPIBUS TORTOR QUIS ORNARE.
SUSPENDISSE POTENTI. ALIQUAM IMPERDIET FERMENTUM LACUS ET VULPUTATE. UT DAPIBUS UT LEO QUIS ELEMENTUM. FUSCE ORNARE LUCTUS LAOREET. MAECENAS TEMPUS LIBERO UT MASSA AUCTOR CONSECTETUR. NULLAM DAPIBUS LUCTUS TINCIDUNT. QUISQUE PLACERAT UT LIBERO A TEMPUS. IN NEC LUCTUS MAURIS, EFFICITUR CONSEQUAT NIBH. AENEAN ACCUMSAN FAUCIBUS MALESUADA. ETIAM FEUGIAT ALIQUAM MASSA ID BIBENDUM. NAM BIBENDUM IN RISUS AT CONGUE. UT QUIS URNA MATTIS, MALESUADA LOREM SIT AMET, CONSEQUAT NISL. CURABITUR VARIUS ODIO MAGNA, ELEIFEND TINCIDUNT URNA DICTUM AT. IN VEL CURSUS DUI, ID VULPUTATE LIBERO.
ETIAM LOBORTIS NEC PURUS EGET SCELERISQUE. NUNC SED EROS MASSA. ETIAM SIT AMET NUNC ID ODIO DAPIBUS AUCTOR NEC IN DOLOR. NUNC TINCIDUNT EGET PURUS SIT AMET PULVINAR. MAURIS AUGUE JUSTO, TEMPOR VEL MALESUADA IN, HENDRERIT IN NUNC. PHASELLUS PULVINAR LACUS QUIS TORTOR CONDIMENTUM, A PRETIUM TURPIS FERMENTUM. PHASELLUS PHARETRA DOLOR VULPUTATE, HENDRERIT LIBERO SED, RUTRUM DOLOR. ALIQUAM UT ORCI AT TURPIS PULVINAR MOLESTIE. VIVAMUS VULPUTATE TEMPOR FAUCIBUS. PRAESENT DAPIBUS DOLOR AC CURSUS DIGNISSIM. DONEC NON TINCIDUNT PURUS. PHASELLUS ULLAMCORPER LEO ID ENIM MAXIMUS, ELEMENTUM ALIQUET MAURIS IACULIS.
UT ULLAMCORPER SODALES VESTIBULUM. SUSPENDISSE SED ELEMENTUM NIBH, QUIS DIGNISSIM LIBERO. PELLENTESQUE HABITANT MORBI TRISTIQUE SENECTUS ET NETUS ET MALESUADA FAMES AC TURPIS EGESTAS. NAM QUIS LOBORTIS JUSTO, TEMPUS LAOREET DIAM. NULLA FACILISI. NUNC NON ELIT NEC NEQUE BLANDIT TRISTIQUE IN NEC PURUS. DONEC ULTRICIES ODIO NON MAURIS MALESUADA VENENATIS. CURABITUR INTERDUM SODALES EROS, ET PORTA METUS. FUSCE CONVALLIS LOREM FACILISIS EROS TINCIDUNT, AT VENENATIS TELLUS BIBENDUM. DUIS POSUERE TORTOR DIAM, BLANDIT ULTRICES DOLOR MATTIS AC. NULLAM COMMODO, ELIT IN SEMPER SODALES, NISL LIBERO ULLAMCORPER TURPIS, EGET ULTRICIES LACUS DOLOR UT MASSA.
MAECENAS AT ARCU MALESUADA, PORTA LACUS TEMPUS, MALESUADA AUGUE. VESTIBULUM RISUS ENIM, MATTIS FINIBUS JUSTO AT, EUISMOD PULVINAR ENIM. DONEC PULVINAR, NULLA QUIS VULPUTATE TEMPUS, ELIT ODIO SAGITTIS IPSUM, ID DICTUM TURPIS DUI AT ANTE. SED EUISMOD DOLOR ENIM, AT SODALES NIBH CONSECTETUR ID. NULLA CONGUE FEUGIAT LUCTUS. QUISQUE LAOREET DAPIBUS NIBH ELEMENTUM ELEMENTUM. CURABITUR QUAM LIBERO, EGESTAS EU ELEMENTUM AC, LAOREET NON LECTUS. NULLAM

View file

@ -1,7 +0,0 @@
from PIL import Image
img = Image.open("Main/input/car.jpg").convert("RGBA")
print (f"{img.getpixel((10,10))}")
print (f"{img.getpixel((10,10))[1]}")
img.putpixel((10,10), (255, 255, 255, 200))
print (f"{img.getpixel((10,10))}")