Как отображать текст с высотой пикселей, а не точками в pyglet?

Pyglet, кажется, использует только точки. Есть ли способ легко конвертировать? Конечно, должен быть простой способ, потому что это что-то очевидно важное, чтобы иметь возможность использовать пиксели для высоты текста.

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)

person Matthew Mitchell    schedule 24.03.2010    source источник


Ответы (1)


Количество пикселей, занимаемых определенным размером точки, будет зависеть от DPI вашего экрана. Например, «14pt» — это расстояние, охватывающее 14 точек, что при значении DPI по умолчанию, равном 96, составляет около 18 пикселей.

Этот сайт дает хорошее объяснение преобразования размеров точек в пиксели.

person Alastair Montgomery    schedule 24.03.2010
comment
Спасибо за ответ. Я пытался использовать 72 для dpi, чтобы отменить ppi или что-то еще, чтобы пиксели были такими же, как точки. По какой-то причине текст отображается намного меньше, чем должен. Я добавлю класс, который я сделал... - person Matthew Mitchell; 25.03.2010
comment
Нашел дополнительную информацию на сайте Pyglet, которая может быть вам полезна. pyglet.org/doc/programming_guide/font_sizes.html - person Alastair Montgomery; 25.03.2010
comment
Большое тебе спасибо. К сожалению, pyglet, похоже, использует совершенно неправильные размеры пикселей для текста, и я задам новый вопрос, касающийся этой проблемы. Но это хорошая информация. - person Matthew Mitchell; 29.03.2010