EDIT: dodano kompletny przykład pracujePython library obraz - pozycjonowanie czcionki
mam następujący program:
from PIL import Image, ImageDraw, ImageFont
FULL_SIZE = 50
filename = 'font_test.png'
font="/usr/share/fonts/truetype/msttcorefonts/arial.ttf"
text="5"
image = Image.new("RGBA", (FULL_SIZE, FULL_SIZE), color="grey")
draw = ImageDraw.Draw(image)
font = ImageFont.truetype(font, 40)
font_width, font_height = font.getsize(text)
draw.rectangle(((0, 0), (font_width, font_height)), fill="black")
draw.text((0, 0), text, font=font, fill="red")
image.save(filename, "PNG")
To generuje następujący obraz:
To wydaje się, że przy pisaniu biblioteki tekstowej PIL dodaje trochę marginesu na górze. Ten margines zależy od używanej czcionki.
Jak wziąć to pod uwagę przy próbie ustawienia tekstu (chcę, aby znajdował się w środku prostokąta)?
(Python 2.7.6 Korzystanie z poduszką 2.3.0 na Ubuntu 14.04)
Proszę podać ** kompletny ** program, który demonstruje błąd, w tym wszelkie instrukcje 'import'. –
Jedynym rozsądnym powodem, dla którego mogę to sobie wyobrazić, jest to, że Open Sans używał proporcjonalnych figur, w którym to przypadku margines byłby różnicą między wysokością x a wysokością, w którym to przypadku powinno tam być. Jedynym mniej rozsądnym powodem jest to, że z jakiegoś powodu rozmiar pliku tekstu w pliku PIL ma jakieś "przesunięcie" dodane do niego: https://pillow.readthedocs.org/en/3.0.x/_modules/PIL /ImageFont.html. Może to różnica, którą widzisz? Nie wyjaśniłoby, dlaczego czarny prostokąt nie rozciąga się za całą literą. – millimoose
Dodano pełny przykład roboczy. – Filip