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)
War es hilfreich?

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
scroll top