Extra verdieping bij het programmeren in Python
Je hebt nu alle bestanden om jouw meme te maken:
maak_meme.py
.Je hebt nu deze drie bestanden waar je mee werkt:
Weet je nog hoe je een afbeelding moet inladen? Kijk in je vorige script en laadt de afbeelding in.
achtergrond
.breedte
en hoogte
.De ImageFont
module van Pillow heb je nodig om met lettertypes te werken. Deze moet je dus ook importeren in je script.
from PIL import Image
regel bovenin naar from PIL import Image, ImageFont
.Nu kun je het Truetype lettertype inladen:
lettertype = ImageFont.truetype("<lettertype bestand>", <lettergrootte>)
<lettertype bestand>
met de bestandsnaam van het lettertype.<lettergrootte>
met de gewenste lettergrootte, bijvoorbeeld: 40Probeer het script uit te voeren. Als het goed is, krijg je nu geen foutmeldingen. Het klopt dat je nog niets ziet.
Om iets te tekenen op een afbeelding hebben we als laatste nog de ImageDraw
module nodig van Pillow.
Met de kennis die je nu hebt, kun je de
ImageDraw
module nu inladen. Lukt dat je?
import
bovenin je script aan om ook de ImageDraw
module in te laden.imagedraw
maar ImageDraw
Bedenk nu korte om op de afbeelding te zetten.
Je maakt nu een onzichtbaar teken gebied aan over de afbeelding met deze code:
# Vraag aan de ImageDraw module om een tekengebied te maken op de achtergrond afbeelding
tekengebied = ImageDraw.Draw(achtergrond)
Op dat tekengebied ga je schrijen met onderstaande code.
# Tekst schrijven
tekst = "Coding in Python\nNo problemo!"
tekengebied.multiline_text((10,10), tekst, font=lettertype, fill=(0,0,0))
Korte uitleg:
tekst = "Coding in Python\nNo problemo!"
betekent: maak een variabele tekst en zet daar deze tekst in\n
die je ziet, is een newline, zo ga je naar een nieuwe regel.(10,10)
betekent: begin te tekenen op positie x=10 en y=10.font=lettertype
betekent: gebruik het Impact lettertype wat in de variabele lettertype
is geladen.fill=(0,0,0)
betekent: gebruik RGB (red, green, blue) waarden 0,0,0. Dit is zwart.Nu kijken wat er is gebeurd door de afbeelding te tonen:
# Het resultaat tonen
achtergrond.show()
# En opslaan onder een andere naam
achtergrond.save("meme_met_tekst.jpg")
De afbeelding staat als het goed is nu in je map
Zo ziet dat er bij mij uit:
En dit is de meme: