# Ces programmes sont sous licence CeCILL-B V1.

from isn import *

# Lecture de la première image
fichier1 = openIn("maison1.pgm")
s = readLineFromFile(fichier1)
s = readLineFromFile(fichier1)
largeur1 = int(readStringFromFile(fichier1))
hauteur1 = int(readStringFromFile(fichier1))
max1 = int(readStringFromFile(fichier1))
gris1 = [[255 for j in range(0,hauteur1)] for i in range(0,largeur1)]
for j in range(0,hauteur1):
  for i in range(0,largeur1):
    gris1[i][j] = int(readStringFromFile(fichier1))
close(fichier1)

# Lecture de la seconde image
fichier2 = openIn("maison2.pgm")
s = readLineFromFile(fichier2)
s = readLineFromFile(fichier2)
largeur2 = int(readStringFromFile(fichier2))
hauteur2 = int(readStringFromFile(fichier2))
max2 = int(readStringFromFile(fichier2))
gris2 = [[255 for j in range(0,hauteur2)] for i in range(0,largeur2)]
for j in range(0,hauteur2):
  for i in range(0,largeur2):
    gris2[i][j] = int(readStringFromFile(fichier2))
close(fichier2)

# Calcul des dimensions maximales des deux images
if largeur1 >= largeur2:
  largeur3 = largeur1
else:
  largeur3 = largeur2
if hauteur1 >= hauteur2:
  hauteur3 = hauteur1
else:
  hauteur3 = hauteur2

# Calcul du niveau de gris maximal
if max1 >= max2:
  max3 = max1
else:
  max3 = max2

# Calcul de l’image fusionnée
gris3 = [[0 for j in range(0,hauteur3)] for i in range(0,largeur3)]
for j in range(0,hauteur3):
  for i in range(0,largeur3):
    # Si un pixel est en dehors d’une image on lui affecte
    # la valeur maximale
    if i < largeur1 and j < hauteur1:
      valeur1 = max3 * gris1[i][j] // max1
    else:
      valeur1 = max3
    if i < largeur2 and j < hauteur2:
      valeur2 = max3 * gris2[i][j] // max2
    else:
      valeur2 = max3
    if valeur1 < valeur2:
      gris3[i][j] = valeur1
    else:
      gris3[i][j] = valeur2

# Écriture de l'image fusionnée
fichier3 = openOut("maisons.pgm")
print("P2",file=fichier3)
print("#",file=fichier3)
print(largeur3,file=fichier3)
print(hauteur3,file=fichier3)
print(max3,file=fichier3)
for j in range(0,hauteur3):
  for i in range(0,largeur3):
    print(gris3[i][j],file=fichier3)
close(fichier3)

