code: def capture(self, to_camera_storage=False):
          
          target = self.config['settings']['capturetarget']
          if to_camera_storage and target.value != "Memory card":
              target.set("Memory card")
          elif not to_camera_storage and target.value != "Internal RAM":
              target.set("Internal RAM")
          lib.gp_camera_trigger_capture(self._cam, self._ctx)
  
          fobj = self._wait_for_event(event_type=lib.GP_EVENT_FILE_ADDED)
          if to_camera_storage:
              self._logger.info("File written to storage at {0}.".format(fobj))
              return fobj
          else:
              data = fobj.get_data()
              try:
                  fobj.remove()
              except errors.CameraIOError:
                  # That probably means the file is already gone from RAM,
                  # so nothing to worry about.
                  pass
              return data
docs: Capture an image.
  
          Some cameras (mostly Canon and Nikon) support capturing to internal
          RAM. On these devices, you have to specify `to_camera_storage` if
          you want to save the images to the memory card. On devices that
          do not support saving to RAM, the only difference is that the file
          is automatically downloaded and deleted when set to `False`.
  
          :param to_camera_storage:   Save image to the camera's internal storage
          :type to_camera_storage:    bool
          :return:    A :py:class:`File` if `to_camera_storage` was `True`,
                      otherwise the captured image as a bytestring.
          :rtype:     :py:class:`File` or bytes