Wie machen wir Text mit Pixelhöhen anstatt Punkten in Pyglet?
Frage
Pyglet scheint nur Punkte zu verwenden. Gibt es eine Möglichkeit leicht zu konvertieren? Sicherlich muss es eine einfache Art und Weise sein, weil es etwas ist natürlich wichtig, in der Lage zu sein, Pixel für Texthöhe zu verwenden.
class Font():
def __init__(self,font,size):
self.size = size
self.font = font
def return_surface(self,label):
surface = Surface((label.content_width,label.content_height))
surface.set_background_alpha(0)
setup_framebuffer(surface,True)
label.draw()
end_framebuffer()
return surface
def render(self,text,colour):
colour = fix_colour(colour)
label = pyglet.text.Label(text,font_name=self.font,font_size=self.size,color = colour,dpi=72)
return self.return_surface(label)
def render_wordwrap(self,text,width,colour,alignment):
if alignment == 0:
alignment = 'left'
elif alignment == 1:
alignment = 'center'
else:
alignment = 'right'
colour = fix_colour(colour)
label = pyglet.text.Label(text,font_name=self.font,font_size=self.size,color = colour,width=width,halign=alignment, multiline=True,dpi=72)
return self.return_surface(label)
Lösung
Die Anzahl der Pixel um einen bestimmten Punktgröße aufgenommen wird DPI auf Ihren Bildschirmen ab. Zum Beispiel, „14pt“ der Abstand Abdeckung 14 Punkte, die bei einer Standard-DPI von 96 liegen bei etwa 18 Pixel.
Die Website gibt eine gute Erklärung von Punktgrößen zu Pixeln umgewandelt wird.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow