Si vous avez toujours voulu avoir un fond d'écran qui se met automatiquement à jour avec l'heure et la date actuelles, ce tutoriel est fait pour vous. Nous utiliserons Python et certaines bibliothèques comme PIL (Pillow) pour générer une image, ajouter du texte dynamique avec l'heure et la date, puis définir cette image comme fond d'écran sous Windows.
Python installé : si Python n'est pas encore installé, vous pouvez le télécharger depuis python.org.
Installer les bibliothèques :
Vous pouvez installer Pillow en exécutant la commande suivante dans votre terminal ou cmd : pip install Pillow
Au début du script, nous importons les bibliothèques nécessaires et définissons quelques paramètres initiaux tels que la couleur d'arrière-plan, la couleur du texte, la taille de la police et le chemin du fichier de police :
from PIL import Image, ImageDraw, ImageFont import ctypes, os, time, io from datetime import datetime background_color = (0, 0, 0) # Color de fondo (negro) text_color = (22, 230, 69) # Color del texto (verde) font_size = 30 font_path = r"c:/Users/david/Desktop/FiraCodeRegular.ttf" # Ruta de la fuente font = ImageFont.truetype(font_path, font_size) screen_width = 1920 screen_height = 1080
Nous définissons une fonction pour garantir que les numéros de date et d'heure sont toujours formatés avec deux chiffres :
def two_digits_format(number): return f"0{number}" if number < 10 else number
Par exemple, le jour « 5 » sera formaté comme « 05 », et la même chose se produira avec l'heure, la minute et la seconde.
La fonction add_text_to_image() crée une nouvelle image vierge avec la taille de l'écran (dans ce cas, 1920x1080) et dessine le texte au centre :
def agregar_texto_a_imagen(): now = datetime.now() texto = f"""{{ "date": {{ "day": {two_digits_format(now.day)}, "month": {two_digits_format(now.month)}, "year": {now.year} }}, "time": {{ "hour": {two_digits_format(now.hour)}, "minute": {two_digits_format(now.minute)}, "second": {two_digits_format(now.second)}, "meridiem": "{now.strftime("%p")}" }} }}"""
Dans cette fonction, nous obtenons la date et l'heure actuelles en utilisant datetime.now(), puis formatons le texte au format JSON. Ceci est rendu dans l'image que nous avons générée.
Ensuite, on calcule le centre de l'écran pour y placer le texte :
bbox = draw.textbbox((0, 0), texto, font=font) ancho_texto = bbox[2] - bbox[0] altura_texto = bbox[3] - bbox[1] posicion_x = (ancho_imagen - ancho_texto) // 2 posicion_y = (altura_imagen - altura_texto) // 2 posicion = (posicion_x, posicion_y)
La fonction set_as_wallpaper() enregistre l'image générée en tant que fichier temporaire puis la définit comme fond d'écran :
from PIL import Image, ImageDraw, ImageFont import ctypes, os, time, io from datetime import datetime background_color = (0, 0, 0) # Color de fondo (negro) text_color = (22, 230, 69) # Color del texto (verde) font_size = 30 font_path = r"c:/Users/david/Desktop/FiraCodeRegular.ttf" # Ruta de la fuente font = ImageFont.truetype(font_path, font_size) screen_width = 1920 screen_height = 1080
Ici, ctypes.windll.user32.SystemParametersInfoW est une fonction Windows qui permet de changer le fond d'écran.
Dans la boucle while True:, l'image est générée et définie comme fond d'écran une fois par seconde :
def two_digits_format(number): return f"0{number}" if number < 10 else number
Cette boucle garantit que le fond d'écran est mis à jour chaque seconde avec l'heure et la date actuelles.
Code complet ici : GitHub
Ce code offre un moyen simple de générer un fond d'écran dynamique qui affiche toujours l'heure et la date actuelles. Vous pouvez personnaliser l'apparence du fond d'écran en ajustant les couleurs, la police et la taille de l'image. De plus, le code est conçu pour être efficace, la mise à jour du fond d'écran se produisant toutes les secondes.
Si vous recherchez une façon amusante d'en apprendre davantage sur la manipulation d'images en Python et sur la manière d'interagir avec le système d'exploitation, ce projet est un excellent point de départ.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!