Ich versuche, eine realistische Zahlenplatte zu erzeugen, wie im folgenden Bild gezeigt. Ich habe verschiedene Methoden ausprobiert, aber gescheitert. Here is my current 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>
Beispiel < /h1>
generat_plate("1200.png "," generated_plate_3d.png "," b "," 65556 ") < /p>
Wie kann ich eine Zahlenplatte mit realistischen Schriftarten und Wirkung erzeugen? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post