Stop trying to cache modules pointlessly

This commit is contained in:
Takaaki Fuji 2022-01-06 22:07:33 +09:00
parent 10a3ca8ea5
commit 288d907497

View File

@ -21,9 +21,6 @@ from fontTools.misc.roundTools import otRound
class FTPen(BasePen): class FTPen(BasePen):
np = None
plt = None
Image = None
Contour = collections.namedtuple('Contour', ('points', 'tags')) Contour = collections.namedtuple('Contour', ('points', 'tags'))
LINE = 0b00000001 LINE = 0b00000001
CURVE = 0b00000011 CURVE = 0b00000011
@ -87,29 +84,23 @@ class FTPen(BasePen):
def array(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None): def array(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None):
# Return a numpy array. Each element takes values in the range of [0.0, 1.0]. # Return a numpy array. Each element takes values in the range of [0.0, 1.0].
if not self.np:
import numpy as np import numpy as np
self.np = np
buf, size = self.buffer(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale) buf, size = self.buffer(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale)
return self.np.frombuffer(buf, 'B').reshape((size[1], size[0])) / 255.0 return np.frombuffer(buf, 'B').reshape((size[1], size[0])) / 255.0
def show(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None): def show(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None):
# Plot the image with matplotlib. # Plot the image with matplotlib.
if not self.plt: from matplotlib import pyplot as plt
from matplotlib import pyplot
self.plt = pyplot
a = self.array(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale) a = self.array(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale)
self.plt.imshow(a, cmap='gray_r', vmin=0, vmax=1) plt.imshow(a, cmap='gray_r', vmin=0, vmax=1)
self.plt.show() plt.show()
def image(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None): def image(self, width=1000, ascender=880, descender=-120, even_odd=False, scale=None):
# Return a PIL image. # Return a PIL image.
if not self.Image: from PIL import Image
from PIL import Image as PILImage
self.Image = PILImage
buf, size = self.buffer(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale) buf, size = self.buffer(width, ascender=ascender, descender=descender, even_odd=even_odd, scale=scale)
img = self.Image.new('L', size, 0) img = Image.new('L', size, 0)
img.putalpha(self.Image.frombuffer('L', size, buf)) img.putalpha(Image.frombuffer('L', size, buf))
return img return img
def save(self, fp, width=1000, ascender=880, descender=-120, even_odd=False, scale=None, format=None, **kwargs): def save(self, fp, width=1000, ascender=880, descender=-120, even_odd=False, scale=None, format=None, **kwargs):