code: def convert_image_to_knitting_pattern(path, colors=("white", "black")):
      
      image = PIL.Image.open(path)
      pattern_id = os.path.splitext(os.path.basename(path))[0]
      rows = []
      connections = []
      pattern_set = {
          "version": "0.1",
          "type": "knitting pattern",
          "comment": {
              "source": path
          },
          "patterns": [
              {
                  "name": pattern_id,
                  "id": pattern_id,
                  "rows": rows,
                  "connections": connections
              }
          ]}
      bbox = image.getbbox()
      if not bbox:
          return pattern_set
      white = image.getpixel((0, 0))
      min_x, min_y, max_x, max_y = bbox
      last_row_y = None
      for y in reversed(range(min_y, max_y)):
          instructions = []
          row = {"id": y, "instructions": instructions}
          rows.append(row)
          for x in range(min_x, max_x):
              if image.getpixel((x, y)) == white:
                  color = colors[0]
              else:
                  color = colors[1]
              instruction = {"color": color}
              instructions.append(instruction)
          if last_row_y is not None:
              connections.append({"from": {"id": last_row_y}, "to": {"id": y}})
          last_row_y = y
      return pattern_set
docs: Load a image file such as a png bitmap of jpeg file and convert it
      to a :ref:`knitting pattern file <FileFormatSpecification>`.
  
      :param list colors: a list of strings that should be used as
        :ref:`colors <png-color>`.
      :param str path: ignore this. It is fulfilled by the loeder.
  
      Example:
  
      .. code:: python
  
          convert_image_to_knitting_pattern().path("image.png").path("image.json")