Heim > Backend-Entwicklung > Python-Tutorial > So erstellen Sie mit Python ein dynamisches Hintergrundbild mit Uhrzeit und Datum

So erstellen Sie mit Python ein dynamisches Hintergrundbild mit Uhrzeit und Datum

Patricia Arquette
Freigeben: 2024-12-12 12:23:25
Original
809 Leute haben es durchsucht

Cómo crear un Wallpaper dinámico con la Hora y Fecha usando Python

Wenn Sie sich schon immer ein Hintergrundbild gewünscht haben, das automatisch mit der aktuellen Uhrzeit und dem aktuellen Datum aktualisiert wird, ist dieses Tutorial genau das Richtige für Sie. Wir werden Python und einige Bibliotheken wie PIL (Pillow) verwenden, um ein Bild zu generieren, dynamischen Text mit Uhrzeit und Datum hinzuzufügen und dieses Bild dann als Hintergrundbild unter Windows festzulegen.

Was brauchen wir?

  • Python installiert: Wenn Sie Python noch nicht installiert haben, können Sie es von python.org herunterladen.

  • Bibliotheken installieren:

    • Kissen: Zum Arbeiten mit Bildern.
    • ctypes: Zur Interaktion mit dem Betriebssystem und zum Ändern des Hintergrundbilds in Windows.

Sie können Pillow installieren, indem Sie den folgenden Befehl in Ihrem Terminal oder cmd ausführen: pip install Pillow

  • Eine Schriftartdatei: Wir benötigen eine TrueType-Schriftart (.ttf), um den Text auf dem Bild darzustellen. Im Beispielcode verwenden wir die Schriftart FiraCode, Sie können jedoch jede beliebige Schriftart verwenden.

1. Importe und Erstkonfiguration

Zu Beginn des Skripts importieren wir die notwendigen Bibliotheken und definieren einige anfängliche Parameter wie Hintergrundfarbe, Textfarbe, Schriftgröße und Pfad der Schriftdatei:

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
Nach dem Login kopieren
Nach dem Login kopieren
  • Pillow (Image, ImageDraw, ImageFont) wird verwendet, um das Bild zu erstellen und den Text zu zeichnen.
  • ctypes wird verwendet, um das Hintergrundbild in Windows zu ändern.
  • Zeit und Datum/Uhrzeit ermöglichen uns die Verwaltung von Zeiten und Daten.
  • Hintergrundfarbe und Textfarbe sind die Farben, die wir für den Hintergrund und den Text verwenden werden.

2. Formatieren von Datum und Uhrzeit

Wir definieren eine Funktion, um sicherzustellen, dass die Datums- und Uhrzeitzahlen immer mit zwei Ziffern formatiert werden:

def two_digits_format(number):
    return f"0{number}" if number < 10 else number
Nach dem Login kopieren
Nach dem Login kopieren

Zum Beispiel wird Tag „5“ als „05“ formatiert, und das Gleiche gilt für Stunde, Minute und Sekunde.

3. Erzeugen Sie das Bild mit Datum und Uhrzeit

Die Funktion add_text_to_image() erstellt ein neues leeres Bild mit der Größe des Bildschirms (in diesem Fall 1920 x 1080) und zeichnet den Text in die Mitte:

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")}"
    }}
}}"""
Nach dem Login kopieren

In dieser Funktion rufen wir das aktuelle Datum und die aktuelle Uhrzeit mit datetime.now() ab und formatieren den Text dann im JSON-Format. Dies wird in dem von uns erstellten Bild wiedergegeben.

Dann berechnen wir die Mitte des Bildschirms, um den Text dort zu platzieren:

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)
Nach dem Login kopieren

4. Legen Sie das Bild als Hintergrundbild fest

Die Funktion set_as_wallpaper() speichert das generierte Bild als temporäre Datei und legt es dann als Hintergrundbild fest:

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
Nach dem Login kopieren
Nach dem Login kopieren

Hier ist ctypes.windll.user32.SystemParametersInfoW eine Windows-Funktion, mit der Sie das Hintergrundbild ändern können.

5. Kontinuierliche Aktualisierung des Hintergrundbilds

In der while True:-Schleife wird das Bild einmal pro Sekunde generiert und als Hintergrundbild festgelegt:

def two_digits_format(number):
    return f"0{number}" if number < 10 else number
Nach dem Login kopieren
Nach dem Login kopieren

Diese Schleife stellt sicher, dass das Hintergrundbild jede Sekunde mit der aktuellen Uhrzeit und dem aktuellen Datum aktualisiert wird.

Vollständiger Code hier: GitHub

Abschluss

Dieser Code bietet eine einfache Möglichkeit, ein dynamisches Hintergrundbild zu generieren, das immer die aktuelle Uhrzeit und das aktuelle Datum anzeigt. Sie können das Erscheinungsbild des Hintergrundbilds anpassen, indem Sie die Farben, die Schriftart und die Bildgröße anpassen. Darüber hinaus ist der Code auf Effizienz ausgelegt, da das Hintergrundbild jede Sekunde aktualisiert wird.

Wenn Sie nach einer unterhaltsamen Möglichkeit suchen, etwas über die Bildmanipulation in Python und die Interaktion mit dem Betriebssystem zu lernen, ist dieses Projekt ein guter Ausgangspunkt.

Das obige ist der detaillierte Inhalt vonSo erstellen Sie mit Python ein dynamisches Hintergrundbild mit Uhrzeit und Datum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage