diff options
author | Roozbeh Pournader <roozbeh@google.com> | 2015-01-13 08:50:27 -0800 |
---|---|---|
committer | James Godfrey-Kittle <jamesgk@google.com> | 2015-04-16 12:16:25 -0700 |
commit | 36623f13d922461c897fe0ae1ff550a073385329 (patch) | |
tree | 9339ab434222da3393491673ea12090de381495b /third_party/freetype-py/examples/glyph-monochrome.py | |
parent | 9fc4898c2338e4b9bb028171f5f8492f01879fbe (diff) |
Add FreeType python bindings to third_party.
Diffstat (limited to 'third_party/freetype-py/examples/glyph-monochrome.py')
-rw-r--r-- | third_party/freetype-py/examples/glyph-monochrome.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/third_party/freetype-py/examples/glyph-monochrome.py b/third_party/freetype-py/examples/glyph-monochrome.py new file mode 100644 index 0000000..3714ceb --- /dev/null +++ b/third_party/freetype-py/examples/glyph-monochrome.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# +# FreeType high-level python API - Copyright 2011 Nicolas P. Rougier +# Distributed under the terms of the new BSD license. +# +# ----------------------------------------------------------------------------- +''' +Glyph bitmap monochrome rendring +''' +from freetype import * + +def bits(x): + data = [] + for i in range(8): + data.insert(0, int((x & 1) == 1)) + x = x >> 1 + return data + +if __name__ == '__main__': + import numpy + import matplotlib.pyplot as plt + + face = Face('./Vera.ttf') + face.set_char_size( 48*64 ) + face.load_char('S', FT_LOAD_RENDER | + FT_LOAD_TARGET_MONO ) + + bitmap = face.glyph.bitmap + width = face.glyph.bitmap.width + rows = face.glyph.bitmap.rows + pitch = face.glyph.bitmap.pitch + + data = [] + for i in range(bitmap.rows): + row = [] + for j in range(bitmap.pitch): + row.extend(bits(bitmap.buffer[i*bitmap.pitch+j])) + data.extend(row[:bitmap.width]) + Z = numpy.array(data).reshape(bitmap.rows, bitmap.width) + plt.imshow(Z, interpolation='nearest', cmap=plt.cm.gray, origin='lower') + plt.show() |