2010-03-24 3 views
0

피글렛은 점을 사용하는 것 같습니다. 쉽게 변환 할 수있는 방법이 있습니까? 분명히 텍스트 높이에 픽셀을 사용할 수 있기 때문에 분명히 중요한 방법이기 때문에 간단한 방법이 있어야합니다.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) 

답변

0

특정 포인트 크기가 차지하는 픽셀 수는 화면 DPI에 따라 다릅니다. 예를 들어, "14pt"는 14 포인트를 다루는 거리이며, 기본 DPI가 96 인 경우 약 18 픽셀입니다.

site은 포인트 크기를 픽셀로 변환하는 좋은 설명을 제공합니다.

+0

답변 해 주셔서 감사합니다. 필자는 dpi로 72를 사용하여 ppi를 없애거나 픽셀이 포인트와 같은 것을 취소하려고 시도했습니다. 텍스트가 너무 작아 보이는 이유가 있습니다. 제가 만든 수업을 추가하겠습니다 ... –

+0

Pyglet 사이트에 대한 유용한 정보를 찾을 수 있습니다. http://www.pyglet.org/doc/programming_guide/font_sizes.html –

+0

대단히 감사합니다. 불행히도 pyglet은 텍스트에 대해 완전히 잘못된 픽셀 크기를 사용하는 것으로 보입니다.이 문제와 관련하여 새로운 질문을하겠습니다. 하지만 좋은 정보입니다. –

관련 문제