> 백엔드 개발 > 파이썬 튜토리얼 > Python을 사용하여 시간과 날짜가 포함된 동적 배경화면을 만드는 방법

Python을 사용하여 시간과 날짜가 포함된 동적 배경화면을 만드는 방법

Patricia Arquette
풀어 주다: 2024-12-12 12:23:25
원래의
809명이 탐색했습니다.

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

현재 시간과 날짜로 자동 업데이트되는 배경화면을 갖고 싶다면 이 튜토리얼이 적합합니다. Python과 PIL(Pillow)과 같은 일부 라이브러리를 사용하여 이미지를 생성하고 시간과 날짜가 포함된 동적 텍스트를 추가한 다음 이 이미지를 Windows의 배경 화면으로 설정합니다.

우리에게 무엇이 필요합니까?

  • Python 설치: Python이 아직 설치되지 않은 경우 python.org에서 다운로드할 수 있습니다.

  • 라이브러리 설치:

    • 베개: 이미지 작업용.
    • ctypes: 운영 체제와 상호 작용하고 Windows의 배경 화면을 변경합니다.

터미널이나 cmd에서 다음 명령을 실행하여 Pillow를 설치할 수 있습니다: pip install Pillow

  • 글꼴 파일: 이미지의 텍스트를 렌더링하려면 트루타입 글꼴(.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에서 배경화면을 변경하는 데 사용됩니다.
  • 시간과 날짜/시간을 통해 시간과 날짜를 관리할 수 있습니다.
  • background_color 및 text_color는 배경과 텍스트에 사용할 색상입니다.

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는 배경화면을 변경할 수 있는 윈도우 기능입니다.

5. 배경화면의 지속적인 업데이트

while True: 루프에서는 초당 한 번씩 이미지가 생성되고 배경화면으로 설정됩니다.

def two_digits_format(number):
    return f"0{number}" if number < 10 else number
로그인 후 복사
로그인 후 복사

이 루프는 배경화면이 현재 시간과 날짜로 매초 업데이트되도록 합니다.

전체 코드: GitHub

결론

이 코드는 항상 현재 시간과 날짜를 표시하는 동적 배경화면을 생성하는 간단한 방법을 제공합니다. 색상, 글꼴, 이미지 크기를 조정하여 배경화면의 모양을 맞춤 설정할 수 있습니다. 또한 코드는 매초마다 배경화면이 업데이트되므로 효율적으로 설계되었습니다.

Python의 이미지 조작 및 운영 체제와 상호 작용하는 방법을 배울 수 있는 재미있는 방법을 찾고 있다면 이 프로젝트가 좋은 시작점이 될 것입니다.

위 내용은 Python을 사용하여 시간과 날짜가 포함된 동적 배경화면을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿