suchen
HeimBackend-EntwicklungPython-TutorialSo erstellen Sie mit Python ein dynamisches Hintergrundbild mit Uhrzeit und Datum

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
  • 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 



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

<h2>
  
  
  3. Erzeugen Sie das Bild mit Datum und Uhrzeit
</h2>

<p>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:<br>
</p>

<pre class="brush:php;toolbar:false">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")}"
    }}
}}"""

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)

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

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 



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

<p>Vollständiger Code hier: GitHub</p>

<h2>
  
  
  Abschluss
</h2>

<p>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.</p>

<p>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.</p>


          

            
        

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!

Stellungnahme
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
Python: Ein tiefes Eintauchen in Zusammenstellung und InterpretationPython: Ein tiefes Eintauchen in Zusammenstellung und InterpretationMay 12, 2025 am 12:14 AM

PythonusesahybridmodelofCompilation und Interpretation: 1) thepythonInterPreterCompilessourceCodeIntoplatform-unintenpendentBytecode.2) Thepythonvirtualmachine (PVM) ThenexexexexecthisByTeCode, BalancingeAnsewusewithperformance.

Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?May 12, 2025 am 12:09 AM

Pythonisbothinterpreted und kompiliert.1) ItscompiledToByteCodeForPortabilityAcrossplatform.2) thytecodeTheninterpreted, und das ErlaubnisfordyNamictyPingandRapidDevelopment zulässt, obwohl es sich

Für Schleife vs während der Schleife in Python: Schlüsselunterschiede erklärtFür Schleife vs während der Schleife in Python: Schlüsselunterschiede erklärtMay 12, 2025 am 12:08 AM

ForloopsaridealWenyouKnowtHenumberofofiterationssinadvance, während whileloopsarebetterForsituationswhereyouneedtoloopuntilaconditionismet.forloopsaremoreffictionAndable, geeigneter Verfaserungsverlust, whereaswiloopsofofermorcontrolanduseusefulfulf

Für und während Schleifen: ein praktischer LeitfadenFür und während Schleifen: ein praktischer LeitfadenMay 12, 2025 am 12:07 AM

Forloopsareusedwhenthenumberofiterationsisknowninadvance,whilewhileloopsareusedwhentheiterationsdependonacondition.1)Forloopsareidealforiteratingoversequenceslikelistsorarrays.2)Whileloopsaresuitableforscenarioswheretheloopcontinuesuntilaspecificcond

Python: Ist es wirklich interpretiert? Die Mythen entlarvenPython: Ist es wirklich interpretiert? Die Mythen entlarvenMay 12, 2025 am 12:05 AM

Pythonisnotpurelyinterpretiert; itusesahybridapproachofByteCodecompilation undruntimeinterpretation.1) PythoncompilessourcecodeIntoBytecode, die ISthenexecutBythepythonvirtualmachine (Pvm)

Python -Verkettungslisten mit demselben ElementPython -Verkettungslisten mit demselben ElementMay 11, 2025 am 12:08 AM

ToconcatenatelistsinpythonWithThesameElements, Verwendung: 1) Die Operatortokeepduplikate, 2) asettoremoveduplicate, or3) listenConpRectionforControloverDuplikate, EvermethodhasDifferentPerformanceInDormplocate.

Interpretiert gegen kompilierte Sprachen: Pythons PlatzInterpretiert gegen kompilierte Sprachen: Pythons PlatzMay 11, 2025 am 12:07 AM

PythonisaninterpretedLuage, OfferingaseofuseandflexibilitätsbutfacingPerformancelimitationsincriticalApplications.1) InterpretedLanguages ​​LikePythonexecutine-by-Line, ermöglicht, dassmediateFeedbackandrapidPrototyping.2) CompiledLanguagesslikec/C.5.

Für und während der Schleifen: Wann benutzt du jeweils in Python?Für und während der Schleifen: Wann benutzt du jeweils in Python?May 11, 2025 am 12:05 AM

Useforloopswhenthenumberofofiterationssisknowninadvance und wileloopswhenCiterationsDependonacondition.1) Forloopsardealforsequencelistorranges.2) Während

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools