ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して時間と日付を含む動的な壁紙を作成する方法

Python を使用して時間と日付を含む動的な壁紙を作成する方法

Patricia Arquette
リリース: 2024-12-12 12:23:25
オリジナル
812 人が閲覧しました

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

現在の時刻と日付で自動的に更新される壁紙が必要な場合は、このチュートリアルが最適です。 Python と PIL (枕) などのライブラリを使用して画像を生成し、時刻と日付を含む動的テキストを追加して、この画像を Windows の壁紙として設定します。

何が必要ですか?

  • Python がインストールされています: Python がまだインストールされていない場合は、python.org からダウンロードできます。

  • ライブラリをインストールします:

    • 枕: 画像を操作します。
    • ctypes: オペレーティング システムと対話し、Windows の壁紙を変更します。

ターミナルまたは cmd で次のコマンドを実行して、Pillow をインストールできます: pip installpillow

  • フォント ファイル: 画像上にテキストをレンダリングするには TrueType フォント (.ttf) が必要です。コード例では FiraCode フォントを使用していますが、お好みのフォントを使用できます。

1. インポートと初期設定

スクリプトの先頭で、必要なライブラリをインポートし、背景色、テキストの色、フォント サイズ、フォント ファイル パスなどのいくつかの初期パラメータを定義します。

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) は、画像の作成とテキストの描画に使用されます。
  • ctypes は Windows の壁紙を変更するために使用されます。
  • time と datetime を使用すると、時間と日付を管理できます。
  • background_color と text_color は、背景とテキストに使用する色です。

2. 日付と時刻の書式設定

日付と時刻の数値が常に 2 桁でフォーマットされるようにする関数を定義します。

def two_digits_format(number):
    return f"0{number}" if number < 10 else number
ログイン後にコピー
ログイン後にコピー

たとえば、日「5」は「05」とフォーマットされ、時、分、秒でも同じことが起こります。

3. 日付と時刻を含む画像を生成します

add_text_to_image() 関数は、画面のサイズ (この場合は 1920x1080) で新しい空白の画像を作成し、中央にテキストを描画します。

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")}"
    }}
}}"""
ログイン後にコピー

この関数では、datetime.now() を使用して現在の日付と時刻を取得し、テキストを JSON 形式にフォーマットします。これは、生成した画像にレンダリングされます。

次に、画面の中心を計算してそこにテキストを配置します。

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. 画像を壁紙として設定します

set_as_wallpaper() 関数は、生成された画像を一時ファイルとして保存し、壁紙として設定します。

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
ログイン後にコピー
ログイン後にコピー

ここで、ctypes.windll.user32.SystemParametersInfoW は、壁紙を変更できる Windows の機能です。

5.壁紙の継続的な更新

while True: ループでは、画像が生成され、1 秒ごとに壁紙として設定されます:

def two_digits_format(number):
    return f"0{number}" if number < 10 else number
ログイン後にコピー
ログイン後にコピー

このループにより、壁紙が現在の時刻と日付で毎秒更新されます。

完全なコードはこちら: GitHub

結論

このコードは、常に現在の時刻と日付を表示する動的な壁紙を生成する簡単な方法を提供します。色、フォント、画像サイズを調整して、壁紙の外観をカスタマイズできます。さらに、コードは効率的になるように設計されており、壁紙の更新は毎秒行われます。

Python での画像操作とオペレーティング システムとの対話方法について楽しく学ぶ方法を探している場合、このプロジェクトは素晴らしい出発点になります。

以上がPython を使用して時間と日付を含む動的な壁紙を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート