Untitled

mail@pastecode.io avatar
unknown
plain_text
2 years ago
1.6 kB
1
Indexable
Never
import json
from PIL import Image, ImageDraw, ImageFont

def create_image_from_json(config_file):
    with open(config_file) as f:
        config = json.load(f)

    width = config.get("width", 800)
    height = config.get("height", 600)
    background_color = config.get("background_color", "white")
    user_image = Image.open(config.get("user_image", "user.jpg"))
    user_image = user_image.resize((int(width * 0.3), int(height * 0.3)))
    font = ImageFont.truetype(config.get("font", "arial.ttf"), size=20)
    language_icon_size = int(width * 0.1)

    image = Image.new("RGB", (width, height), background_color)
    draw = ImageDraw.Draw(image)

    user_image_x = int(width * 0.05)
    user_image_y = int(height * 0.05)
    image.paste(user_image, (user_image_x, user_image_y))

    username = config.get("username", "John Doe")
    username_x = int(user_image_x + user_image.width + 10)
    username_y = int(user_image_y + user_image.height / 2 - font.getsize(username)[1] / 2)
    draw.text((username_x, username_y), username, font=font, fill=(0, 0, 0))

    programming_languages = config.get("programming_languages", [])
    programming_languages_x = int(width * 0.05)
    programming_languages_y = int(user_image_y + user_image.height + 20)
    for language in programming_languages:
        language_icon = Image.open(language.get("icon", "python.png"))
        language_icon = language_icon.resize((language_icon_size, language_icon_size))
        image.paste(language_icon, (programming_languages_x, programming_languages_y))
        programming_languages_x += language_icon.width + 10

    return image