<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_bitmap(self, time=None, size=32, store_path=None):
 """ Get a bitmap of the object at a given instance of time. If time is `None`,`then the bitmap is generated for the last point in time. Parameters time : int or None size : int Size in pixels. The resulting bitmap will be (size x size). store_path : None or str If this is set, then the image will be saved there. Returns ------- numpy array : Greyscale png image """

        # bitmap_width = int(self.get_width()*size) + 2
        # bitmap_height = int(self.get_height()*size) + 2
        img = Image.new('L', (size, size), 'black')
        draw = ImageDraw.Draw(img, 'L')
        bb = self.get_bounding_box()
        for stroke in self.get_sorted_pointlist():
            for p1, p2 in zip(stroke, stroke[1:]):
                if time is not None and \
                   (p1['time'] > time or p2['time'] > time):
                    continue
                y_from = int((-bb['miny'] + p1['y']) /
                             max(self.get_height(), 1)*size)
                x_from = int((-bb['minx'] + p1['x']) /
                             max(self.get_width(), 1)*size)
                y_to = int((-bb['miny'] + p2['y']) /
                           max(self.get_height(), 1)*size)
                x_to = int((-bb['minx'] + p2['x']) /
                           max(self.get_width(), 1)*size)
                draw.line([x_from, y_from, x_to, y_to],
                          fill='#ffffff',
                          width=1)
        del draw
        if store_path is not None:
            img.save(store_path)
        return numpy.asarray(img)