Convertitore WebP per Windows

Sempre di più si lavora con il formato WebP e sempre di più c’è la necessità di convertire rapidamente cartelle intere di file, magari misti tra jpg o png.

E’ pieno di convertitori online, ma quasi tutti hanno le loro limitazioni, chi sul numero di file, chi sui formati da caricare…

Ho pensato quindi potesse essere utile sviluppare un programma per Windows, che permetta di selezionare una cartella contenente immagini (indipendentemente dai formati presenti, png o jpg) e di convertirle tutte in formato WebP, creando una sottocartella chiamata (con molta fantasia) /webp.

Lo Script è stato realizzato in Python con l’ausilio di ChatGPT4 e lo trovate a fine articolo.

Niente più bisogno di scaricare i file, cambiare il formato, rinominarli, ecc…

Chiaramente è completamente Free e scaricabile da QUI.

import os
import glob
import webbrowser
from PIL import Image
import tkinter as tk
from tkinter import messagebox, filedialog

def convert_images():
    # Get the path of the directory
    dir_path = filedialog.askdirectory()
    if not dir_path:
        return

    # Check if the output directory exists, if not, create it
    output_dir = os.path.join(dir_path, 'webp')
    os.makedirs(output_dir, exist_ok=True)

    # Get all image files in the directory
    image_files = glob.glob(os.path.join(dir_path, '*'))
    image_files = [f for f in image_files if f.lower().endswith(('.png', '.jpg', '.jpeg'))]

    # Convert each image to webp
    for image_file in image_files:
        img = Image.open(image_file)
        base_name = os.path.basename(image_file)
        base_name = os.path.splitext(base_name)[0]
        output_file = os.path.join(output_dir, f'{base_name}.webp')
        img.save(output_file, 'webp')

    messagebox.showinfo("Conversione completata", f"Tutte le immagini sono state convertite in {output_dir}")

def open_link(event):
    webbrowser.open('https://www.yellowcreativemedia.com')

def main():
    # Create the main window
    root = tk.Tk()
    root.title("Convertitore di immagini")
    root.geometry("300x300")

    # Create a button that will start the conversion
    convert_button = tk.Button(root, text="Converti immagini", command=convert_images)
    convert_button.pack(pady=20)

    # Create a label with a link
    link_label = tk.Label(root, text="Creato da Piergiorgio Concari", fg="blue", cursor="hand2")
    link_label.pack(pady=30)
    link_label.bind("<Button-1>", open_link)

    # Run the main loop
    root.mainloop()

if __name__ == "__main__":
    main()