diff options
Diffstat (limited to 'Redim/convertisseur.py')
| -rw-r--r-- | Redim/convertisseur.py | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/Redim/convertisseur.py b/Redim/convertisseur.py deleted file mode 100644 index ddb0092..0000000 --- a/Redim/convertisseur.py +++ /dev/null @@ -1,91 +0,0 @@ -from PIL.Image import ANTIALIAS -from PIL.Image import new as image_new -from PIL.Image import open as image_open -from os import mkdir, listdir -from os.path import isfile, isdir, join - - -class Redim(): - def __init__(self, formats_acceptes): - self.formats_acceptes = formats_acceptes - - def start(self, dossier, larg, haut, background_color, format_final): - print("\n[-] travail pour", larg, "x", haut, "px :") - if dossier == "": - print(" >>>ERREUR<<< : Aucun dossier selectionne.") - return - if isdir(dossier): - liste_fichier, dossier_sauvegarde = self.listage_fichiers_et_dossiers(dossier, larg) - self.main(liste_fichier, dossier_sauvegarde, larg, haut, background_color, format_final) - else: - print(" >>>ERREUR<<< : Le dossier n'existe plus.") - - def listage_fichiers_et_dossiers(self, dossier, larg): - liste_fichier = [] - dossier_sauvegarde = join(dossier, str(larg)) - if not isdir(dossier_sauvegarde): - mkdir(dossier_sauvegarde) - for nom in listdir(dossier): - if isfile(join(dossier, nom)): - if join(dossier, nom).rsplit(".", 1)[-1] in self.formats_acceptes: - liste_fichier.append([join(dossier, nom), nom]) - return liste_fichier, dossier_sauvegarde - - def suppression_de_alpha(self, img, background_color): - img = img.convert("RGBA") - if img.mode in ("RGBA", "LA"): - fond = image_new(img.mode[:-1], img.size, background_color) - fond.paste(img, img.split()[-1]) - img = fond - img.convert("RGB") - return img - - def redimensionnement(self, img, larg, haut): - if (img.size[0] >= larg) or (img.size[1] >= haut): - img.thumbnail((larg, haut), ANTIALIAS) - elif (img.size[0] / img.size[1]) <= (larg / haut): - nouvelle_larg = int(haut * img.size[0] / img.size[1]) - img = img.resize((nouvelle_larg, haut), ANTIALIAS) - else: - nouvelle_haut = int(larg * img.size[1] / img.size[0] ) - img = img.resize((larg, nouvelle_haut), ANTIALIAS) - return img - - def rennomage(self, origine_nom, larg, format_final): - charcters_indesirable = ("(", ")", "[", "]", "{", "}","'", "#", - "&","$","£", "¤", "€", "`", "^", "°", "¨", - "@", "!", ",", "~", "%", ";", "µ", "§") - charcters_underscore = (" ", "-") - nouveau_nom = origine_nom - for i in charcters_indesirable: - nouveau_nom = nouveau_nom.replace(i, "") - for i in charcters_underscore: - nouveau_nom = nouveau_nom.replace(i, "_") - return nouveau_nom.lower() + "_modif_" + str(larg) + format_final - - def main(self, liste_fichier, dossier_sauvegarde, larg, haut, background_color, format_final): - for nom in liste_fichier: - try: - print(" [+] Travail sur :", nom[1]) - img = image_open(nom[0]) - print(" >> Taille initiale :", img.size[0] ,"x" ,img.size[1], "px") - if nom[1].rsplit(".", 1)[-1] in ("png", "webp"): - img = self.suppression_de_alpha(img, background_color) - img = self.redimensionnement(img, larg, haut) - print(" >> Taille apres redimensionnement :", img.size[0] ,"x" ,img.size[1], "px") - nouveau_nom = self.rennomage(nom[1].rsplit(".", 1)[0], larg, format_final) - fond = image_new("RGB", (larg, haut), background_color) - fond.paste(img, ((larg - img.size[0]) // 2, (haut - img.size[1]) // 2)) - if isfile(join(dossier_sauvegarde, nouveau_nom)): - adverbes_multplicatifs = ("_bis", "_ter", "_quater", "_quinquies", "_sexies", "_septies") - nom_deja_present = nouveau_nom - iteration = 0 - while isfile(join(dossier_sauvegarde, nom_deja_present)): - nom_deja_present = nouveau_nom.rsplit(".", 1)[0] + adverbes_multplicatifs[iteration] - nom_deja_present += format_final - iteration += 1 - fond.save(join(dossier_sauvegarde, nom_deja_present)) - else: - fond.save(join(dossier_sauvegarde, nouveau_nom)) - except Exception as e: - print(" >>>ERREUR<<< : ", e) |
