Skip to content
Snippets Groups Projects
Commit 8c43b50f authored by Antonio MATTAR's avatar Antonio MATTAR
Browse files
parents e5e9e1cb 79b2e948
No related branches found
No related tags found
No related merge requests found
File added
File added
File added
File added
......@@ -3,7 +3,7 @@ from logging import exception
from pprint import pprint
from PIL import Image
import logic
import parser
import parsing
colors = ['black','blue','green','orange','pink','purple','red','yellow']
......@@ -16,29 +16,30 @@ def associateVariableWithColor(variable):
if str(variable) not in variables_colors_couple:
variables_colors_couple[str(variable)] = colors[-1]
colors.pop()
class MyImage:
def __init__(self, image, boolean):
#------------------------------------------------------------------------------------------------------------------------------------------
class My_image:
def __init__(self,image,b):
self.image=image
self.isEgg = boolean
self.width = self.image.width
self.height = self.image.height
def resize(self, given_width, given_height):
if (self.isEgg):
self.image = self.image.resize((min((self.image.width), given_width), min((self.image.height), given_height)), Image.BICUBIC)
else:
self.image = self.image.resize((given_width, given_width))
self.is_egg=b
def resize(self,width,height):
if not(self.is_egg):
self.image.resize(width, height)
else:
self.image.resize(min(self.image.width,width), min(self.image.height,height))
#---------------------------------------------------------------------------------------------------------------------------------
def createVarImage(variable):
assert (logic.isVariable(variable))
associateVariableWithColor(variable)
egg_img = Image.open("figures/egg_"+variables_colors_couple[str(variable)]+".png")
image=My_image(egg_img,True)
return egg_img
def createAlligator(terme):
assert (logic.isVariable(terme))
associateVariableWithColor(terme)
alligator_img = Image.open("figures/alligator_"+variables_colors_couple[str(terme)]+".png")
image=My_image(alligator_img,False)
return alligator_img
def createAbsImage(terme):
......@@ -47,16 +48,19 @@ def createAbsImage(terme):
output = logic.getOutputFromAbs(terme)
im1 =createAlligator(input)
im2 = createImage(output)
abstraction = Image.new('RGB', (max(im1.width, im2.width), im1.height + im2.height), (255, 255, 255))
abstraction.paste(im1, ((max(im1.width, im2.width)-im1.width) // 2, 0))
abstraction.paste(im2, ( 0 , im1.height))
abstraction = Image.new('RGB', (max(im1.width, im2.image.width), im1.height + im2.image.height), (255, 255, 255))
abstraction.paste(im1, ((max(im1.width, im2.image.width)-im1.width) // 2, 0))
abstraction.paste(im2.image, ( 0 , im1.height))
return abstraction
def get_concat_h_multi_resize(im_list, resample=Image.BICUBIC):
def get_concat_h_multi_resize(im_list, resample=Image.Resampling.BICUBIC):
max_height=max(im.height for im in im_list)
min_height = min(im.height for im in im_list)
im_list_resize = [im.resize((int(im.width * min_height / im.height), min_height), resample=resample)
for im in im_list]
min_width = min(im.width for im in im_list_resize)
min_width=min(im.width for im in im_list)
space_width=int(min_width*0.25)
total_width = sum(im.width for im in im_list_resize) + (len(im_list_resize) -1) * space_width
dst = Image.new('RGB', (total_width, min_height),(255,255,255))
......@@ -72,17 +76,16 @@ def createAppImage(terme):
right = logic.getSecondTerm(terme)
im1 = createImage(left)
im2 = createImage(right)
space = Image.open("figures/space.png")
application = get_concat_h_multi_resize([im1,im2])
application = get_concat_h_multi_resize([im1.image,im2.image])
return application
def createImage(terme):
if logic.isVariable(terme):
return createVarImage(terme)
return My_image(createVarImage(terme),True)
if logic.isAbstraction(terme):
return createAbsImage(terme)
return My_image(createAbsImage(terme),False)
if logic.isApplication(terme):
return createAppImage(terme)
return My_image(createAppImage(terme),False)
else:
raise Exception("Unsupported term type")
......
......@@ -195,7 +195,7 @@ import image_maker
image_counter = 0
def captureImage(terme):
global image_counter
image_maker.saveImage(image_maker.createImage(terme),str(image_counter))
image_maker.saveImage(image_maker.createImage(terme).image,str(image_counter))
image_counter += 1
def beta_reduction_totale(terme):
......
import logic
import parser
import parsing
import image_maker
def run():
# x = image_maker.createImage(parser.parseTerm(input("Enter a term: ")))
# x = image_maker.createImage(parsing.parseTerm(input("Enter a term: ")))
# image_maker.saveImage(x, "terme")
# x.show()
logic.beta_reduction_totale(parser.parseTerm(input("Enter a term: ")))
logic.beta_reduction_totale(parsing.parseTerm(input("Enter a term: ")))
run()
\ No newline at end of file
File moved
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment