Anonymous
Как я могу генерировать номерной пластин с реалистичными шрифтами и эффектом? [закрыто]
Сообщение
Anonymous » 21 авг 2025, 12:16
Я пытаюсь генерировать реалистичную номерную пластину, как показано на следующем изображении. Я пробовал разные методы, но не удался.
Код: Выделить всё
from PIL import Image, ImageDraw, ImageFont
def generate_plate(template_path, output_path, plate_letter, plate_number):
template = Image.open(template_path).convert("RGBA")
draw = ImageDraw.Draw(template)
# Load better font (replace with downloaded plate font)
font_letter = ImageFont.truetype("fonts/BarlowCondensed-Light.ttf", 150)
font_number = ImageFont.truetype("fonts/BarlowCondensed-Light.ttf", 160)
# Positions
letter_position = (80, 100)
number_position = (600, 100)
# Shadow offsets for 3D effect
shadow_offset = (3, 3)
shadow_color = (50, 50, 50, 255) # dark gray
text_color = (0, 0, 0, 255) # black
highlight_color = (180, 180, 180, 255) # lighter edge highlight
# --- Draw Letter with 3D effect ---
# Shadow
draw.text((letter_position[0] + shadow_offset[0], letter_position[1] + shadow_offset[1]),
plate_letter, font=font_letter, fill=shadow_color)
# Highlight
draw.text((letter_position[0] - 2, letter_position[1] - 2),
plate_letter, font=font_letter, fill=highlight_color)
# Main text
draw.text(letter_position, plate_letter, font=font_letter, fill=text_color)
# --- Draw Number with 3D effect ---
draw.text((number_position[0] + shadow_offset[0], number_position[1] + shadow_offset[1]),
plate_number, font=font_number, fill=shadow_color)
draw.text((number_position[0] - 2, number_position[1] - 2),
plate_number, font=font_number, fill=highlight_color)
draw.text(number_position, plate_number, font=font_number, fill=text_color)
template.save(output_path)
< /code>
Пример < /h1>
generate_plate("1200.png", "generated_plate_3d.png", "B", "65556")
генерирует
Подробнее здесь:
https://stackoverflow.com/questions/797 ... and-effect
1755767778
Anonymous
Я пытаюсь генерировать реалистичную номерную пластину, как показано на следующем изображении. Я пробовал разные методы, но не удался.[code]from PIL import Image, ImageDraw, ImageFont def generate_plate(template_path, output_path, plate_letter, plate_number): template = Image.open(template_path).convert("RGBA") draw = ImageDraw.Draw(template) # Load better font (replace with downloaded plate font) font_letter = ImageFont.truetype("fonts/BarlowCondensed-Light.ttf", 150) font_number = ImageFont.truetype("fonts/BarlowCondensed-Light.ttf", 160) # Positions letter_position = (80, 100) number_position = (600, 100) # Shadow offsets for 3D effect shadow_offset = (3, 3) shadow_color = (50, 50, 50, 255) # dark gray text_color = (0, 0, 0, 255) # black highlight_color = (180, 180, 180, 255) # lighter edge highlight # --- Draw Letter with 3D effect --- # Shadow draw.text((letter_position[0] + shadow_offset[0], letter_position[1] + shadow_offset[1]), plate_letter, font=font_letter, fill=shadow_color) # Highlight draw.text((letter_position[0] - 2, letter_position[1] - 2), plate_letter, font=font_letter, fill=highlight_color) # Main text draw.text(letter_position, plate_letter, font=font_letter, fill=text_color) # --- Draw Number with 3D effect --- draw.text((number_position[0] + shadow_offset[0], number_position[1] + shadow_offset[1]), plate_number, font=font_number, fill=shadow_color) draw.text((number_position[0] - 2, number_position[1] - 2), plate_number, font=font_number, fill=highlight_color) draw.text(number_position, plate_number, font=font_number, fill=text_color) template.save(output_path) < /code> Пример < /h1> generate_plate("1200.png", "generated_plate_3d.png", "B", "65556") [/code] генерирует Подробнее здесь: [url]https://stackoverflow.com/questions/79741933/how-can-i-generate-number-plate-with-realistic-fonts-and-effect[/url]