Wojciech Muła wrote: > swiftset wrote: > >> I'm try to convert a glyph into a format I can easily numerically >> manipulate. So far I've figured out how to use ttfquery to get a list >> that represents the outline of a contour in a glyph: >> >> from ttfquery import describe, glyphquery, glyph >> f = describe.openFont("/usr/share/fonts/truetype/freefont/ >> FreeSans.ttf") >> n = glyphquery.glyphName(f, 'D') >> g = glyph.Glyph(n) >> c = g.calculateContours(f) >> o = glyph.decomposeOutline(c[1]) >> >> o looks like: >> >> [array([182, 82],'s'), >> (354, 82), >> (420.22222222222229, 90.000000000000014), >> (474.88888888888891, 114.0), ..., >> array([182, 82],'s'), >> array([182, 82],'s')] >> >> Is this a polyline? >> > > decomposeOutline docstring confirms -- it's a polyline. I think > elements marked with 's' starts new subpath. > > w. > Examples of rendering self.contours and self.outlines (created by self.compile on the Glyph) using OpenGL operations are in the toolsfont module in OpenGLContext:
http://pyopengl.cvs.sourceforge.net/pyopengl/OpenGLContext/scenegraph/text/toolsfont.py?view=markup The outlines are simple 2D line-loops, the things with 's' are array objects (not start coordinates), you can convert the whole thing to a consistent array with numpy.array (or Numeric.array). That is, the 's' is just an artefact of how the calculation was done, the values are all 2-element coordinates, some as Python tuples, some as 2-element Numeric/numpy "short" arrays. HTH, Mike -- ________________________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://www.vrplumber.com http://blog.vrplumber.com -- http://mail.python.org/mailman/listinfo/python-list