summaryrefslogtreecommitdiff
path: root/third_party/freetype-py/examples/glyph-monochrome.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/freetype-py/examples/glyph-monochrome.py')
-rw-r--r--third_party/freetype-py/examples/glyph-monochrome.py43
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()