code: def initialize_from_string(content: str) -> 'CapitanSymbol':
          
  
          if content is None or content is "":
              return None
  
          parts = content.split(":")
          min_x = 100000
          max_x = 0
          min_y = 100000
          max_y = 0
  
          symbol_name = parts[0]
  
          sequence = parts[1]
          image_numbers = parts[2].split(',')
          image_data = numpy.asarray(image_numbers, numpy.uint8).reshape((30, 30))
  
          stroke = []
  
          for point_string in sequence.split(";"):
              if point_string is "":
                  continue  # Skip the last element, that is due to a trailing ; in each line
  
              point_x, point_y = point_string.split(",")
              x = float(point_x)
              y = float(point_y)
              stroke.append(SimplePoint2D(x, y))
  
              max_x = max(max_x, x)
              min_x = min(min_x, x)
              max_y = max(max_y, y)
              min_y = min(min_y, y)
  
          dimensions = Rectangle(Point2D(min_x, min_y), int(max_x - min_x + 1), int(max_y - min_y + 1))
          return CapitanSymbol(content, stroke, image_data, symbol_name, dimensions)
docs: Create and initializes a new symbol from a string
          :param content: The content of a symbol as read from the text-file in the form <label>:<sequence>:<image>
          :return: The initialized symbol
          :rtype: CapitanSymbol