62 lines
1.8 KiB
Python
62 lines
1.8 KiB
Python
def download_font():
|
|
import os
|
|
fontfile = "Roboto-Regular.ttf"
|
|
if not os.path.isfile(fontfile):
|
|
print("No font file, downloading now")
|
|
try:
|
|
import requests
|
|
url = 'https://github.com/google/fonts/raw/master/apache/roboto/static/Roboto-Regular.ttf'
|
|
font = requests.get(url)
|
|
|
|
open(fontfile, 'wb').write(font.content)
|
|
except:
|
|
raise("Error getting font or storing")
|
|
else:
|
|
print("Successfully got font", fontfile)
|
|
elif os.path.isfile(fontfile):
|
|
print("Already have font, continuing")
|
|
|
|
def append_airport(filename, icao, airport, distance_mi):
|
|
from PIL import Image, ImageDraw, ImageFont
|
|
distance_km = distance_mi * 1.609
|
|
|
|
# create Image object with the input image
|
|
image = Image.open(filename)
|
|
# initialise the drawing context with
|
|
# the image object as background
|
|
draw = ImageDraw.Draw(image)
|
|
|
|
#Setup fonts
|
|
fontfile = "Roboto-Regular.ttf"
|
|
font = ImageFont.truetype(fontfile, 14)
|
|
mini_font = ImageFont.truetype(fontfile, 12)
|
|
head_font = ImageFont.truetype(fontfile, 16)
|
|
|
|
#Setup Colors
|
|
black = 'rgb(0, 0, 0)' # Black
|
|
white = 'rgb(255, 255, 255)' # White
|
|
navish = 'rgb(0, 63, 75)'
|
|
#Info Box
|
|
draw.rectangle(((316, 760), (605, 800)), fill= white, outline=black)
|
|
#Header Box
|
|
draw.rectangle(((387, 738), (535, 760)), fill= navish)
|
|
|
|
#Create Text
|
|
#Nearest Airport Header
|
|
(x, y) = (408, 740)
|
|
text = "Nearest Airport"
|
|
draw.text((x, y), text, fill=white, font=head_font)
|
|
#ICAO
|
|
(x, y) = (320, 765)
|
|
text = icao
|
|
draw.text((x, y), text, fill=black, font=font)
|
|
#Distance
|
|
(x, y) = (432, 765)
|
|
text = str(round(distance_mi, 2)) + "mi / " + str(round(distance_km, 2)) + "km away"
|
|
draw.text((x, y), text, fill=black, font=font)
|
|
#Full name
|
|
(x, y) = (320, 783)
|
|
text = airport[0:56]
|
|
draw.text((x, y), text, fill=black, font=mini_font)
|
|
# save the edited image
|
|
image.save(filename) |