49 lines
2.2 KiB
Python
49 lines
2.2 KiB
Python
from PIL import Image, ImageDraw, ImageFont
|
|
import time
|
|
import datetime
|
|
|
|
def overlay_text_on_image(background_image_path):
|
|
# Open the background image
|
|
img = Image.open(background_image_path)
|
|
d = ImageDraw.Draw(img)
|
|
|
|
# Get the current UNIX time
|
|
unix_timestamp = time.time()
|
|
unix_time_str = f"{unix_timestamp}"
|
|
|
|
# Get the current system time
|
|
system_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
|
system_time_str = f"{system_time}"
|
|
|
|
# Get date formated as 23d365
|
|
systemzdate = datetime.datetime.now()
|
|
systemzyear = systemzdate.year % 100
|
|
systemz_day_of_year = systemzdate.timetuple().tm_yday
|
|
systemz_time_str = f"a{systemzyear}d{systemz_day_of_year}"
|
|
|
|
# Use a built-in font (or replace with your own font path)
|
|
fnt = ImageFont.truetype("DejaVuSans.ttf", 14)
|
|
fntz = ImageFont.truetype("DejaVuSans.ttf", 16)
|
|
|
|
# Calculate text position (centered)
|
|
unix_time_bbox = d.textbbox((0, 0), unix_time_str, font=fnt)
|
|
system_time_bbox = d.textbbox((0, 0), system_time_str, font=fnt)
|
|
systemz_time_bbox = d.textbbox((0, 0), systemz_time_str, font=fntz)
|
|
|
|
unix_time_width, unix_time_height = unix_time_bbox[2] - unix_time_bbox[0], unix_time_bbox[3] - unix_time_bbox[1]
|
|
system_time_width, system_time_height = system_time_bbox[2] - system_time_bbox[0], system_time_bbox[3] - system_time_bbox[1]
|
|
systemz_time_width, systemz_time_height = systemz_time_bbox[2] - systemz_time_bbox[0], systemz_time_bbox[3] - systemz_time_bbox[1]
|
|
|
|
|
|
img_width, img_height = img.size
|
|
d.text(((img_width - unix_time_width) / 2, (1 * img_height / 6) - unix_time_height / 2), unix_time_str, font=fnt, fill="white")
|
|
d.text(((img_width - system_time_width) / 2, (3 * img_height / 6) - system_time_height / 2), system_time_str, font=fnt, fill="white")
|
|
d.text(((img_width - systemz_time_width) / 2, (5 * img_height / 6) - systemz_time_height / 2), systemz_time_str, font=fnt, fill="white")
|
|
|
|
# Save the image with the overlay text
|
|
img.save('overlay_datetime_image.png')
|
|
|
|
if __name__ == "__main__":
|
|
background_image_path = 'timebackground.png' # Replace with your image path
|
|
overlay_text_on_image(background_image_path)
|
|
|