code: def _transform_images_single(
      sample_collection,
      size=None,
      min_size=None,
      max_size=None,
      interpolation=None,
      ext=None,
      force_reencode=False,
      media_field="filepath",
      output_field=None,
      output_dir=None,
      rel_dir=None,
      update_filepaths=True,
      delete_originals=False,
      skip_failures=False,
  ):
      if output_field is None:
          output_field = media_field
  
      diff_field = output_field != media_field
  
      view = sample_collection.select_fields(media_field)
  
      with fou.ProgressBar() as pb:
          for sample in pb(view):
              inpath = sample[media_field]
  
              outpath = _get_outpath(
                  inpath, output_dir=output_dir, rel_dir=rel_dir
              )
  
              if ext is not None:
                  outpath = os.path.splitext(outpath)[0] + ext
  
              _transform_image(
                  inpath,
                  outpath,
                  size=size,
                  min_size=min_size,
                  max_size=max_size,
                  interpolation=interpolation,
                  force_reencode=force_reencode,
                  delete_original=delete_originals,
                  skip_failures=skip_failures,
              )
  
              if update_filepaths and (diff_field or outpath != inpath):
                  sample[output_field] = outpath
                  sample.save()
  
imports: import logging
  import os
  import eta.core.image
  import eta.core.utils
  import fiftyone.core.storage
  import fiftyone.core.utils
  import fiftyone.core.validation
label_desc: Use image node_id 8 for calling a global function with example usage: _transform_images_single(sample_collection, size, min_size, max_size, interpolation, ext, force_reencode, media_field, output_field, output_dir, rel_dir, update_filepaths, delete_originals, skip_failures) without return types