code: def _save(im, fp, filename):
      if im.mode == "1":
          rawmode, head = "1;I", b"P4"
      elif im.mode == "L":
          rawmode, head = "L", b"P5"
      elif im.mode == "I":
          if im.getextrema()[1] < 2**16:
              rawmode, head = "I;16B", b"P5"
          else:
              rawmode, head = "I;32B", b"P5"
      elif im.mode == "RGB":
          rawmode, head = "RGB", b"P6"
      elif im.mode == "RGBA":
          rawmode, head = "RGB", b"P6"
      else:
          raise IOError("cannot write mode %s as PPM" % im.mode)
      fp.write(head + ("\n%d %d\n" % im.size).encode("ascii"))
      if head == b"P6":
          fp.write(b"255\n")
      if head == b"P5":
          if rawmode == "L":
              fp.write(b"255\n")
          elif rawmode == "I;16B":
              fp.write(b"65535\n")
          elif rawmode == "I;32B":
              fp.write(b"2147483648\n")
      ImageFile._save(
          im, fp, [("raw", (0, 0) + im.size, 0, (rawmode, 0, 1))]
      )
  
imports: from .None import Image, ImageFile
label_desc: Use image node_id 2 for calling a global function with example usage: _save(im, fp, filename) without return types